sttr – это бесплатный инструмент командной строки с открытым исходным кодом на языке Golang, который позволяет легко изменять и модифицировать текст.
Вы можете выполнять операции преобразования строки, такие как хеширование текста, манипулирование строками и т. д. sttr полезен для разработчиков и пользователей *nix, которым требуется быстрое изменение строк или файлов непосредственно через командную строку или TUI.
Он пригодится вам при написании скриптов, обработке данных и автоматизации задач в CLI.
Установка sttr – замечательного инструмента командной строки в Linux или Unix для преобразования строки
Введите команды в соответствии с версией вашего дистрибутива Linux или Unix.
macOS установка sttr
Сначала включите Homebrew и введите команду brew следующим образом:
$ brew tap abhimanyu003/sttr
$ brew install sttr
Если у вас установлен macports, попробуйте выполнить команду port следующим образом:
sudo port install sttr
Arch Linux установка sttr
Вам нужно использовать команду yay:
yay -S sttr-bin
Debian/Ubuntu Linux и другие дистрибутивы с snap
Если у вас включена функция snap, введите следующую команду snap
sudo snap install sttr
Установка sttr на Windows
Попробуйте использовать curl следующим образом:
curl.exe https://webi.ms/sttr | powershell
Другие способы установки на Linux и Unix
Вы можете установить sttr, загрузив скрипт install.sh из официального репозитория.
Лучше всего установить его в папку ./bin в каталоге $HOME.
Синтаксис следующий:
$ wget https://raw.githubusercontent.com/abhimanyu003/sttr/main/install.sh $ vim install.sh $ bash install.sh
Использование
Теперь, когда sttr установлен.
Пришло время использовать его.
Синтаксис прост:
$ sttr command "text"
$ echo -n "text" | sttr command
Например, чтобы преобразовать текст в нижний или верхний регистр, нужно набрать его следующим образом:
$ echo "THIS is A TeSt" | sttr lower
$ echo "THIS is A TeSt" | sttr upper
Чтобы преобразовать текст в CamelCase или kebab-case:
$ sttr camel "move_player_Ball"
$ sttr kebab "move_player_Ball"
Вот как получить контрольную сумму SHA512 или SHA256 вашего текста:
sttr sha512 "demo foo bar" sttr sha256 "demo foo bar"
Запустить sttr в режиме TUI можно следующим образом:
sttr
Введите текст и дважды нажмите клавишу [Enter]:
This is a Test
Конвертация
Вы можете преобразовать YAML в JSON-текст или наоборот.
Например, вот что я получил, используя команду dig +yaml +short A itsecforu.ru > output.yaml и отобразил с помощью команды cat
- type: MESSAGE message: type: RECURSIVE_RESPONSE query_time: !!timestamp 2024-05-24T21:03:56.750Z response_time: !!timestamp 2024-05-24T21:03:56.751Z message_size: 74b socket_family: INET socket_protocol: UDP response_address: "127.0.0.53" response_port: 53 query_address: "0.0.0.0" query_port: 0 response_message_data: opcode: QUERY status: NOERROR id: 19668 flags: qr rd ra QUESTION: 1 ANSWER: 2 AUTHORITY: 0 ADDITIONAL: 1
Давайте преобразуем YAML в текст JSON:
$ sttr yaml-json output.yaml $ sttr yaml-json output.yaml > output.json $ cat output.json
Вывод:
[{"message":{"message_size":"74b","query_address":"0.0.0.0","query_port":0,"query_time":"2024-05-24T21:05:18.881Z","response_address":"127.0.0.53","response_message_data":{"ADDITIONAL":1,"ANSWER":2,"AUTHORITY":0,"QUESTION":1,"flags":"qr rd ra","id":22203,"opcode":"QUERY","status":"NOERROR"},"response_port":53,"response_time":"2024-05-24T21:05:18.884Z","socket_family":"INET","socket_protocol":"UDP","type":"RECURSIVE_RESPONSE"},"type":"MESSAGE"}]
Вы можете извлечь IPv4 и IPv6 из вашего текста:
sttr extract-ip input.txt
Также можно извлекать URL-адреса:
sttr extract-urls input.txt
Заключение
Это лишь верхушка айсберга! Sttr – это отличный и фантастический инструмент командной строки для разработчиков и пользователей Linux/Unix.
Он может выполнять множество других текстовых операций, от кодирования/декодирования и фильтрации до преобразования и извлечения URL, IP, адресов электронной почты и многого другого.
Это универсальное решение для всех, кто регулярно работает с текстом в CLI.
см. также:
- 🐧 Как преобразовать текстовые файлы в верхний или нижний регистр
- Как преобразовать файл rpm в файл deb
- 📜 Преобразование символов в нижний регистр на Bash – проще, чем вы думаете
- ⏲️ Преобразование даты и времени utc в локальное время на Linux