【发布时间】:2015-09-14 01:02:48
【问题描述】:
我有一个 CSV 文件,其中的列以逗号分隔,带有逗号的文本数据的列被引用。
有时,在带引号的文本中,还存在引号来表示英寸等内容,从而导致更多引号。
没有嵌入逗号的文本数据没有引号。
例如:
A,B,C
1,"hello, how are you",hello
2,car,bike
3,13.3 inch tv,"tv 13.3"""
我如何使用 awk 打印我应该得到的每一行的列数
3
3
3
我曾想过使用$awk -F'[,"]',但我得到的列比现有的多。
帮助表示赞赏。
【问题讨论】:
-
尝试字段分隔符
awk --field-separator="," "{ print NF }" -
@authprivate 从不将 awk 脚本放在双引号中,
--field-separator=","与-F,完全相同。要学习 awk,请阅读 Arnold Robbins 所著的《Effective Awk Programming, 4th Edition》一书。