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