Почему в файле .tsv от Distrokid нет столбца суммирования awk? - PullRequest
0 голосов
/ 26 апреля 2019

Вот мой код:

awk -F ' ' '{sum+=$7} END {print sum}' file.tsv

Отлично работает на большинстве моих файлов .tsv. На файлах .tsv от Distrokid код не работает. Просто возвращает 0. Экспериментируя, кажется, возвращает только значение первой записи в столбце. Как ни странно, если я скопирую содержимое файла .tsv в новый файл и сохраню его как .tsv, тогда он будет работать. Пожалуйста, найдите ссылки на 2 .tsv файлы. Один работает, другой нет. Почему это?

РАБОТЫ

НЕ РАБОТАЕТ

1 Ответ

1 голос
/ 26 апреля 2019

Ваш другой файл не имеет разрывов строк Unix.Он имеет только \r (конец строки DOS).

Эта команда gnu awk будет работать для обоих входных файлов:

awk -v RS='[\r\n]+' '{sum += $8} END{print sum}' DOESNT_WORK.tsv

28200

-v RS='[\r\n]+' использует разделитель входных записей в качестве одного или нескольких символов \r или \n.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...