Skip to content

cross-platform, cli app to perform various operations on string

License

Notifications You must be signed in to change notification settings

abhimanyu003/sttr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

sttr

sttr

Website | Install | Getting Started | CLI Reference | Source Code

sttr is command line software that allows you to quickly run various transformation operations on the string.

// With input prompt
sttr

// Direct input
sttr md5 "Hello World"

// File input
sttr md5 file.text
sttr base64-encode image.jpg

// Reading from different processor like cat, curl, printf etc..
echo "Hello World" | sttr md5
cat file.txt | sttr md5

// Writing output to a file
sttr yaml-json file.yaml > file-output.json

๐ŸŽฅ Demo

sttr demo

๐Ÿ”‹ Installation

Quick install

You can run the below curl to install it somewhere in your PATH for easy use. Ideally it will be installed at ./bin folder

curl -sfL https://raw.githubusercontent.com/abhimanyu003/sttr/main/install.sh | sh

Homebrew

If you are on macOS and using Homebrew, you can install sttr with the following:

brew install abhimanyu003/sttr/sttr

Snap

sudo snap install sttr

Arch Linux

yay -S sttr-bin

Docker

docker run -it --rm -e TERM=xterm-256color ghcr.io/abhimanyu003/sttr:latest 

You can use docker image in your project from ghcr.io/abhimanyu003/sttr:latest

Winget

winget install -e --id abhimanyu003.sttr

Scoop

scoop bucket add sttr https://github.com/abhimanyu003/scoop-bucket.git
scoop install sttr

Webi

macOS / Linux

curl -sS https://webi.sh/sttr | sh

Windows

curl.exe https://webi.ms/sttr | powershell

See here

Go

go install github.com/abhimanyu003/sttr@latest

Binary

MacOS Binary ( Multi-Architecture )

Linux (Binaries) amd64 | arm64 | i386

Windows (Exe) amd64 | arm64 | i386

Manually

Download the pre-compiled binaries from the Release! page and copy them to the desired location.

๐Ÿ“š Guide

  • After installation simply run sttr command.
// For interactive menu
sttr
// Provide your input
// Press two enter to open operation menu
// Press `/` to filter various operations.
// Can also press UP-Down arrows select various operations.
  • Working with help.
sttr -h

// Example
sttr zeropad -h
sttr md5 -h
  • Working with files input.
sttr {command-name} {filename}

sttr base64-encode image.jpg
sttr md5 file.txt
sttr md-html Readme.md
  • Writing output to file.
sttr yaml-json file.yaml > file-output.json
  • Taking input from other command.
curl https: //jsonplaceholder.typicode.com/users | sttr json-yaml
  • Chaining the different processor.
sttr md5 hello | sttr base64-encode

echo "Hello World" | sttr base64-encode | sttr md5

๐Ÿ’ฅ Supported Operations

Encode/Decode

  • ascii85-encode - Encode your text to Ascii85
  • ascii85-decode - Decode your Ascii85 text
  • base32-decode - Decode your Base32 text
  • base32-encode - Encode your text to Base32
  • base64-decode - Decode your Base64 text
  • base64-encode - Encode your text to Base64
  • base85-encode - Encode your text to Base85
  • base85-decode - Decode your Base85 text
  • base64url-decode - Decode your Base64 URL
  • base64url-encode - Encode your text to URL
  • html-decode - Unescape your HTML
  • html-encode - Escape your HTML
  • rot13-encode - Encode your text to ROT13
  • url-decode - Decode URL entities
  • url-encode - Encode URL entities

Hash

  • bcrypt - Get the bcrypt hash of your text
  • md5 - Get the MD5 checksum of your text
  • sha1 - Get the SHA1 checksum of your text
  • sha256 - Get the SHA256 checksum of your text
  • sha512 - Get the SHA512 checksum of your text

String

  • camel - Transform your text to camelCase
  • kebab - Transform your text to kebab-case
  • lower - Transform your text to lower case
  • pascal - Transform your text to PascalCase
  • reverse - Reverse Text ( txeT esreveR )
  • slug - Transform your text to slug-case
  • snake - Transform your text to snake_case
  • title - Transform your text to Title Case
  • upper - Transform your text to UPPER CASE

Lines

  • count-lines - Count the number of lines in your text
  • reverse-lines - Reverse lines
  • shuffle-lines - Shuffle lines randomly
  • sort-lines - Sort lines alphabetically
  • unique-lines - Get unique lines from list

Spaces

  • remove-spaces - Remove all spaces + new lines
  • remove-newlines - Remove all new lines

Count

  • count-chars - Find the length of your text (including spaces)
  • count-lines - Count the number of lines in your text
  • count-words - Count the number of words in your text

RGB/Hex

  • hex-rgb - Convert a #hex-color code to RGB
  • hex-encode - Encode your text Hex
  • hex-decode - Convert Hexadecimal to String

JSON

  • json - Format your text as JSON
  • json-escape - JSON Escape
  • json-unescape - JSON Unescape
  • json-yaml - Convert JSON to YAML text
  • json-msgpack - Convert JSON to MSGPACK
  • msgpack-json - Convert MSGPACK to JSON

YAML

  • yaml-json - Convert YAML to JSON text

Markdown

  • markdown-html - Convert Markdown to HTML

Extract

  • extract-emails - Extract emails from given text
  • extract-ip - Extract IPv4 and IPv6 from your text
  • extract-urls - Extract URLs your text ( we don't do ping check )

Other

  • escape-quotes - escape single and double quotes from your text
  • completion - generate the autocompletion script for the specified shell
  • interactive - Use sttr in interactive mode
  • version - Print the version of sttr
  • zeropad - Pad a number with zeros
  • and adding more...

Featured On

These are the few locations where sttr was highlighted, many thanks to all of you. Please feel free to add any blogs/videos you may have made that discuss sttr to the list.

Contribution

This project welcomes your PR and issues. For example, refactoring, adding features, correcting English, etc.

A quick development guide can be found on. Developer-Guides wiki page.

If you need any help, you can contact me on Twitter.

Thanks to all the people who already contributed!

License

MIT