Bash F.A.Q
Для обработки строк в bash'е имеется много мощных утилит, как то grep, wc, sed, awk, cut. В данной статье я рассмотрю основные задачи, которые будут возникать перед вами при написании 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