Files
tldr/pages.uk/common/awk.md
2024-10-11 21:27:22 +05:30

37 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`