此问题已在此处有答案:
Can awk deal with CSV file that contains comma inside a quoted field?(12个回答)
昨天关门了。
我的CSV文件格式请注意,第6行的同一列有多个逗号分隔的值。
a,b,c,d,e,f
g,h,i,j,k,l
m,n,o,p,q,r
s,t,u,v,w,x
y,z,ab,bc,cd,de
"a,b,c",d,e,f,g,"h,i,j"
现在,如果我触发awk -F, '{print $1}'
,那么对于第6行,我会得到不正确的结果。
$ awk -F, '{print $1}' test.csv
a
g
m
s
y
"a
如何使用awk或其他实用程序(sed、cut等)处理同一列的多个逗号分隔值?
1条答案
按热度按时间lpwwtiir1#
您可以使用GNU-awk和一个正则表达式来捕获
""
之间的:FPAT
值是描述每个字段(col)内容的正则表达式。因此,在CSV示例中,“每个字段的内容”是(可选)用引号(
""
)括起来的任何值。有关详细信息,请参阅gawk手册: