|
| 1 | +# awk |
| 2 | + |
| 3 | +> Универсальный язык программирования для работы с файлами. |
| 4 | +> Примечание: различные реализации AWK часто делают эту команду символической ссылкой на свой бинарный файл. |
| 5 | +> Смотрите также: `gawk`. |
| 6 | +> Больше информации: <https://github.com/onetrueawk/awk>. |
| 7 | +
|
| 8 | +- Вывести пятый столбец (или поле) в файле, разделённом пробелами: |
| 9 | + |
| 10 | +`awk '{print $5}' {{путь/к/файлу}}` |
| 11 | + |
| 12 | +- Вывести второй столбец строк, содержащих "foo", в файле, разделённом пробелами: |
| 13 | + |
| 14 | +`awk '/{{foo}}/ {print $2}' {{путь/к/файлу}}` |
| 15 | + |
| 16 | +- Вывести последний столбец каждой строки в файле, используя запятую (вместо пробела) в качестве разделителя полей: |
| 17 | + |
| 18 | +`awk -F ',' '{print $NF}' {{путь/к/файлу}}` |
| 19 | + |
| 20 | +- Просуммировать значения в первом столбце файла и вывести итог: |
| 21 | + |
| 22 | +`awk '{s+=$1} END {print s}' {{путь/к/файлу}}` |
| 23 | + |
| 24 | +- Вывести каждую третью строку, начиная с первой: |
| 25 | + |
| 26 | +`awk 'NR%3==1' {{путь/к/файлу}}` |
| 27 | + |
| 28 | +- Вывести различные значения в зависимости от условий: |
| 29 | + |
| 30 | +`awk '{if ($1 == "foo") print "Exact match foo"; else if ($1 ~ "bar") print "Partial match bar"; else print "Baz"}' {{путь/к/файлу}}` |
| 31 | + |
| 32 | +- Вывести все строки, в которых значение 10-го столбца находится между минимальным и максимальным значениями: |
| 33 | + |
| 34 | +`awk '($10 >= {{минимальное_значение}} && $10 <= {{максимальное_значение}})' {{путь/к/файлу}}` |
| 35 | + |
| 36 | +- Вывести таблицу пользователей (UID >=1000) с заголовком и форматированием, разделитель - двоеточие (`%-20s`: 20 символов с выравниванием по левому краю, `%6s`: 6 символов с выравниванием по правому краю): |
| 37 | + |
| 38 | +`awk 'BEGIN {FS=":";printf "%-20s %6s %25s\n", "Name", "UID", "Shell"} $4 >= 1000 {printf "%-20s %6d %25s\n", $1, $4, $7}' /etc/passwd` |
0 commit comments