Bash F.A.Q

Категория: Bash

Для обработки строк в bash'е имеется много мощных утилит, как то grepwcsedawkcut. В данной статье я рассмотрю основные задачи, которые будут возникать перед вами при написании bash скриптов. Статья не претендует на полное руководство по каждой утилите, однако задает вектор и начальное понимание того, как можно использовать эти инструменты.

F.A.Q

Найти файлы *.png в текущем каталоге:

find . -maxdepth 1 -name '*.png'

Найти файлы содержащие текст (в текущем каталоге и во всех подкаталогах):

grep -r MY_TEXT *

Обработать список файлов:

for f in *.php; do echo "Processing file: $f"; done

Заменить символ или подстроку:

echo "in_array" | tr _ -

Запомнить подстроку по регулярному выражению (RegExp):

grep -E -o "(Xmodmap.*)"

Отфильтровать директории из списка:

grep ^d

Подсчитать количество отфильтрованных строк:

grep -Rl "SOME STRING" ./ | wc -l

Вывести последние N строк из .log файла:

tail -n 20 file.log
tail -n 20 -F file.log # автоматически следить (мониторить) за изменениями

Вырезать / запомнить последние символы из переменной:

str='latest';
result=${str:(-4)};
echo $result # test

Определить интерпретатор который выполняет скрипт:

$(ps -ef | grep $$ | awk '{print $8}' | grep -Po '[a-z]+' | sed -n 2p) # sh,bash,zsh


#regexp, #grep, #tail

категория: Bash