2016-04-26 3 views
0

Я пытаюсь получить сумму 5-го столбца файла .csv с помощью bash, однако команда, которую я использую, продолжает получать меня равной нулю. Я обжигающе файл через Grep, чтобы удалить строку заголовка столбца:Получите сумму конкретного столбца, используя bash?

grep -v Header results.csv | awk '{sum += $5} END {print sum}' 
+4

Разделяются ли данные пробелами или запятой? Если запятые, вам нужно сказать 'awk' разделить на них:' awk -F, ... '. Кроме того, 'grep | awk' - это анти-шаблон: вам нужно: 'awk -F, '/ Header/{next} {sum + = $ 5} END {print sum}' results.csv' (no' grep'). Вы можете использовать 'NR == 1' вместо'/Header/'для удаления первой строки файла данных. –

+2

Пожалуйста, разместите образец файла csv. –

+0

Данные разделены запятыми. Спасибо, я дам это попробовать – user3871995

ответ

1

вот как я бы это сделать:

tail -n+2 | cut -d, -f5 | awk '{sum+=$1} END {print sum}' 

или:

tail -n+2 | awk -F, '{sum+=$5} END {print sum}' 

(в зависимости от того, что получается чтобы быть быстрее.)

Смежные вопросы