Как конвертировать awk скрипт в sh скрипт
Есть простенький скрипт для подсчета среднего значения в колонке:
cat /home/data/hotels.csv | awk -F, '{sum+=$18} END {print sum/NR}'
Я хочу создать файл process.sh, чтобы он делал то же, самое, и принимал файл с датасетом в качестве аргумента:
./process.sh /home/data/hotels.csv
Как это можно сделать?
Ответы (2 шт):
Автор решения: ipatev_nn
→ Ссылка
Скрипт process.sh:
#!/bin/bash
awk -F, '{sum+=$18} END {print sum/NR}' "${1:?Не передано имя файла}"
запуск
./process.sh /home/data/hotels.csv
Переводить из awk в shell, думаю смысла в данном случае нет
Автор решения: Ivan
→ Ссылка
Переделывать awk в sh не стоит, sh медленнее и не поддерживает дробные числа, которые будут появляться при вычислении среднего значения. Либо оберните awk в баш скрипт, как рекомендовал user341547, либо создайте awk скрипт.
#!/usr/bin/awk -f
BEGIN {
FS = ","
}
sum+=$18{}
END {
print sum/NR
}
запуск
./process.awk /home/data/hotels.csv