# awk

> Універсальна мова програмування для роботи з файлами.
> Більше інформації: <https://github.com/onetrueawk/awk>.

- Вивести п’ятий стовпець (він же поле) у файлі, розділеному пробілами:

`awk '{print $5}' {{шлях/до/файлу}}`

- Вивести другий стовпець рядків, що містять "foo", у файлі, розділеному пробілами:

`awk '/{{foo}}/ {print $2}' {{шлях/до/файлу}}`

- Вивести останній стовпець кожного рядка у файлі, використовуючи кому (замість пробілу) як роздільник полів:

`awk -F ',' '{print $NF}' {{шлях/до/файлу}}`

- Підсумувати значення в першому стовпці файлу та надрукувати підсумок:

`awk '{s+=$1} END {print s}' {{шлях/до/файлу}}`

- Вивести кожен третій рядок, починаючи з першого:

`awk 'NR%3==1' {{шлях/до/файлу}}`

- Вивести різні значення залежно від умов:

`awk '{if ($1 == "foo") print "Точний збіг foo"; else if ($1 ~ "bar") print "Частковий збіг bar"; else print "Baz"}' {{шлях/до/файлу}}`

- Вивести всі рядки, значення 10-го стовпця яких знаходиться між min і max:

`awk '($10 >= {{min_value}} && $10 <= {{max_value}})'`

- Вивести таблицю користувачів із UID >=1000 із заголовком і форматуванням, використовуючи двокрапку як роздільник («%-20s» означає: 20 символів рядка з вирівнюванням по лівому краю, «%6s» означає: 6 символів рядка з вирівнюванням по правому краю):

`awk 'BEGIN {FS=":";printf "%-20s %6s %25s\n", "Name", "UID", "Shell"} $4 >= 1000 {printf "%-20s %6d %25s\n", $1, $4, $7}' /etc/passwd`