【发布时间】:2011-05-08 18:20:52
【问题描述】:
我(在其他人的帮助下)写了一个awk command 来汇总 CSV 文件中的一列。不幸的是,我在谷歌搜索后得知awk 不擅长处理 CSV 文件,因为分隔符并不总是相同的(即用引号括起来时应该忽略逗号)。
似乎 Perl 脚本可以做得更好。是否有可能有一个单行 Perl 脚本(或几乎一样简洁的东西)来实现与此 awk 命令相同的功能,该命令总计 CSV 文件的第 5 列?
cat file.csv | awk -F "\"*,\"*" '{s+=$5} END {printf("%01.2f\n", s)}'
我并没有特别喜欢 Perl,但我希望避免编写成熟的 PHP 脚本。到这个时候,我本可以轻松编写一个 PHP 脚本,但是现在我已经走到了这一步,我想看看我是否可以完成它。
【问题讨论】: