Как стать автором
Обновить

Комментарии 16

Моя производственная практика показала, что эти древние команды BASH используется очень часто. И умение эффективно использовать их выводит на новый уровень.
И, как по мне, хоть уже тысячи раз говорили про всевозможные bash команды, освежить в памяти всегда полезно. Тем более что часто возвращаюсь к различным публикациям на хабре. Огромное спасибо за перевод!

строго говоря bash - это bash, а awk - это awk)

Согласен. Я в том ключе, что базовые команды.
Дочитав до слов «символ перехода» я на некоторое время завис. Но продолжив чтение я понял что имеется в виду «escape character». Посмотрел оригинал и понял что я правильно предположил.
Да, этот термин я неверно истолковал. Исправил.

Для создания файла в командной строке используется команда touch

Формально говоря, утилита touch не для создания файла, а обновления его timestamp. То что она создает файл это её дополнительная фича. Ее может и не быть в системе, или могут отсутствовать права на ее запуск.

man touch
touch - change file timestamps

создать можно перенаправлением вывода

> newfile.txt

Добавлю из своей практики полезные кейсы.

Ключом -F можно указывать разделитель столбцов:

awk -F '*' '{print $1}'

Также полезно применять арифметические операторы к переменным. Вывод предпоследнего столбца:

awk '{print $NF-1}'

А также пару крутых однострочников которые показывают всю прелесть awk с другими команднами.

Вывод потребления памяти с сортировкой из ps:

ps axo rss,comm,pid | awk '{ proc_list[2] += $1; } END { for (proc in proc_list) { printf(1/=1024;printf "%.0fMB\t",$1}{print $2}'

Потребление SWAP:

for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | head



Таблички в текстовых файликах по колоночкам? Серьёзно? Почему хотя бы не csv или тот же jsonl?

НЛО прилетело и опубликовало эту надпись здесь

то ни о каких FreeBSD, Linux и прочих Unix-like системах мы бы сейчас и не слышали.

Спасибо, что у нас есть jq, и этот ужас мы теперь тоже парсим прямо в командной строке.

Почему хотя бы не csv или тот же jsonl?

Выхлоп почти любой команды достаточно просто преобразовать в вид, понятный awk. А вот преобразовать произвольный текст в json не всегда просто.

Часто команды в терминале выдают табличный вывод - ls, lsof, ps и так далее

Как расшифровывается AWK?

Название AWK складывается из инициалов разработчиков языка: Alfred V. Aho, Peter J. Weinberger и Brian W. Kernighan.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий