Bash 为什么不是';来自Distrokid的.tsv文件中的awk求和列?

Bash 为什么不是';来自Distrokid的.tsv文件中的awk求和列?,bash,csv,awk,Bash,Csv,Awk,这是我的密码: awk-F'{sum+=$7}END{print sum}文件.tsv 在我的大多数.tsv文件上都可以正常工作。在Distrokid中的.tsv文件上,代码不起作用。只返回0。在实验中,它似乎只返回列中第一个条目的值。奇怪的是,如果我将.tsv文件的内容复制到一个新文件并将其另存为.tsv,它就会工作。请查找指向2.tsv文件的链接。一个有效,另一个无效。为什么会这样 您的另一个文件没有Unix换行符。它只有\r(DOS行结束) 此gnu awk命令将适用于两个输入文件: a

这是我的密码:

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

在我的大多数.tsv文件上都可以正常工作。在Distrokid中的.tsv文件上,代码不起作用。只返回0。在实验中,它似乎只返回列中第一个条目的值。奇怪的是,如果我将.tsv文件的内容复制到一个新文件并将其另存为.tsv,它就会工作。请查找指向2.tsv文件的链接。一个有效,另一个无效。为什么会这样


您的另一个文件没有Unix换行符。它只有
\r
(DOS行结束)

gnu awk
命令将适用于两个输入文件:

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


-v RS='[\r\n]+'
正在使用输入记录分隔符作为
\r
\n
中的一个或多个字符。

对这两个文件执行
cat
操作,并向我们展示这些文件中的数据外观a
\r
前OS X Mac使用了行结尾。DOS与Windows一样使用
\r\n
28200