Fish Shell:
Поиск и замена текста
Как это сделать:
Давайте заменим все вхождения слова ‘cat’ на ‘dog’ в строке.
echo "One cat, two cats, three cats." | string replace -a 'cat' 'dog'
Пример вывода:
One dog, two dogs, three dogs.
Замена текста в файле с именем pets.txt
:
string replace -a 'cat' 'dog' < pets.txt > updated_pets.txt
Использование переменных для шаблонов:
set old "cat"
set new "dog"
string replace -a $old $new < pets.txt > updated_pets.txt
Погружение в детали
Поиск и замена текста существуют в текстовых редакторах с незапамятных времён. Вспомните sed
для потокового редактирования в Unix — это старая добрая классика. Fish поднимает это на новый уровень, делая процесс проще с помощью команды string
. Больше нет необходимости мучиться с регулярными выражениями, если только вы этого не хотите. Альтернативы? Конечно: sed
, awk
, скрипты на Perl, даже макросы vim
. Но команда string
в Fish выделяется своей элегантностью и меньшей подверженностью ошибкам для обычных задач.
Смотрите также:
- Официальная документация Fish Shell по команде
string
: fishshell.com/docs/current/cmds/string.html - Sed на примерах, часть 1: https://www.gnu.org/software/sed/manual/sed.html
- Программирование на языке AWK — Строковые Функции: https://www.gnu.org/software/gawk/manual/gawk.html#String-Functions