TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #142 1.09K
Эффективная обработка CSV-файлов с помощью awk

Работа с CSV-файлами может быть упрощена до нескольких команд с использованием awk. Этот инструмент позволяет легко манипулировать данными, фильтровать строки и производить вычисления.

1. Чтение CSV-файлов. Предположим, у вас есть CSV-файл data.csv следующего вида:


name,age,city
Ivan,30,Moscow
Bob,25,New York
Ruslan,35,Kazan


Чтобы вывести все строки с awk, используйте:


awk -F, '{print $1, $2, $3}' data.csv

name age city
Ivan 30 Moscow
Bob 25 New York
Ruslan 35 Kazan


Здесь -F, указывает awk, что поля разделяются запятыми.

2. Фильтрация данных. Для вывода только тех строк, где возраст больше 30:


awk -F, '$2 > 30 {print $1, $2, $3}' data.csv

Ruslan 35 Kazan


3. Агрегация данных. Подсчет среднего возраста:


awk -F, 'NR>1 {sum+=$2; count++} END {print "Средний возраст:", sum/count}' data.csv

Средний возраст: 30


4. Изменение данных. Изменение формата имени в файле:


awk -F, 'BEGIN{OFS=","} {gsub(/Ivan/, "Konstantin", $1); print}' data.csv

name,age,city
Konstantin,30,Moscow
Bob,25,New York
Ruslan,35,Kazan


5. Конвертация CSV в JSON. Вы можете преобразовать CSV в JSON-формат:


awk -F, 'NR==1 {for(i=1;i<=NF;i++) header[i]=$i} NR>1 {printf "{"; for(i=1;i<=NF;i++) printf "\"%s\":\"%s\"%s", header[i], $i, (i==NF ? "" : ","); print "}"}' data.csv


Вывод:


{"name":"Ivan","age":"30","city":"Moscow"}
{"name":"Bob","age":"25","city":"New York"}
{"name":"Ruslan","age":"35","city":"Kazan"}


awk позволяет легко фильтровать, модифицировать и анализировать данные, что делает его незаменимым в арсенале каждого администратора и разработчика.

BashTex 📱 #linux #utils
  • 👍 12
  • 🫡 1
More from @bash_tex
  1. Oct 13, 2026openat2(): как Linux защищает от выхода за пределы каталога Допустим, приложение должно чи…
  2. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  3. Oct 9, 2026BashTex 📱 #мем
  4. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  5. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  6. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →