20 Практични AWK Примера за Обработка на CSV, Логове и Текст

AWK е мощен инструмент за обработка на текстови данни, който може да спести часове ръчна работа. В тази статия ще разгледаме 20 готови за употреба примера за работа с CSV файлове, логове и текст. Всички примери са директно копираеми! 🚀
📌 Защо AWK?
- Бърз – обработва големи файлове за секунди. ⚡
- Гъвкав – работи с CSV, логове, текст и др. 📂
- Мощен – поддържа сложни операции като филтриране, агрегиране и трансформации. 💪
🔥 20 Практични AWK Примера
📊 1. Преглед на CSV файл (първите 10 реда)
awk 'NR <= 10' data.csv
📌
NR
е номерът на реда. Тук показваме само първите 10.
📊 2. Филтриране на редове по стойност (напр. колона 2 > 100)
awk -F',' '$2 > 100' data.csv
📌
-F','
задава разделител (запетая).$2
е втората колона.
📊 3. Извличане на конкретни колони (1-ва и 3-та)
awk -F',' '{print $1, $3}' data.csv
📌 Извежда само колони 1 и 3.
📊 4. Броене на редове във файл
awk 'END {print NR}' data.csv
📌
END
се изпълнява след обработката.NR
дава общия брой редове.
📊 5. Сумиране на числа в колона (напр. 3-та колона)
awk -F',' '{sum += $3} END {print sum}' data.csv
📌 Събира всички стойности в колона 3 и ги отпечатва накрая.
📊 6. Средна стойност на колона
awk -F',' '{sum += $2; count++} END {print sum/count}' data.csv
📌 Изчислява средно аритметично за колона 2.
📊 7. Намиране на максимална стойност в колона
awk -F',' 'NR==1 {max=$3} $3 > max {max=$3} END {print max}' data.csv
📌 Сравнява всяка стойност в колона 3 и намира най-голямата.
📊 8. Филтриране на уникални стойности в колона
awk -F',' '!seen[$1]++' data.csv
📌 Извежда само уникалните стойности в колона 1.
📊 9. Замяна на разделител (CSV → TSV)
awk -F',' '{print $1 "\t" $2 "\t" $3}' data.csv > data.tsv
📌 Конвертира запетайки в табове (
\t
).
📊 10. Добавяне на номера на редове
awk '{print NR, $0}' data.csv
📌 Вмъква номер на ред преди съдържанието.
📝 11. Търсене на грешки в логове (напр. "error")
awk '/error/ {print}' app.log
📌 Извежда всички редове, съдържащи "error".
📝 12. Броене на грешки в логове
awk '/error/ {count++} END {print count}' app.log
📌 Показва колко пъти се среща "error" във файла.
📝 13. Извличане на IP адреси от логове
awk '{print $1}' access.log | sort | uniq
📌 Взима първата колона (обикновено IP), сортира и филтрира уникални.
📝 14. Анализ на HTTP кодове (напр. 404, 500)
awk '{print $9}' access.log | sort | uniq -c | sort -nr
📌 Брои срещанията на HTTP статуси (404, 200 и др.).
📝 15. Топ 5 най-посещавани страници
awk '{print $7}' access.log | sort | uniq -c | sort -nr | head -5
📌 Показва 5-те най-често срещани URL адреси.
✂ 16. Извличане на текст между маркери (напр. <title>…</title>)
awk -F'<title>|</title>' '{print $2}' webpage.html
📌 Взима текста между
<title>
и</title>
.
✂ 17. Премахване на празни редове
awk 'NF > 0' file.txt
📌
NF
е броят полета – тук се запазват само непразни редове.
✂ 18. Обръщане на реда на редовете във файл
awk '{lines[NR] = $0} END {for (i=NR; i>0; i--) print lines[i]}' file.txt
📌 Запазва редовете в масив и ги извежда в обратен ред.
✂ 19. Добавяне на текст в началото/края на всеки ред
awk '{print "START: " $0 " :END"}' file.txt
📌 Добавя "START: " и " :END" към всеки ред.
✂ 20. Разделяне на файл по критерий (напр. по колона)
awk -F',' '{print > $1 ".txt"}' data.csv
📌 Създава отделен файл за всяка уникална стойност в колона 1.
🎯 Заключение
С тези 20 AWK примера можете да:
✅ Анализирате CSV данни
✅ Обработвате логове
✅ Трансформирате текст
AWK е като "швейцарски нож" за текстова обработка – бърз, точен и универсален. 🛠️
💡 Съвет: Запазете тази статия и използвайте примерите като бърза справка!
🚀 Пробвайте ги сега и спестете часове ръчна работа!
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut