我有一个包含
的csv文件a,b,c,d,e,f,"gg,hh,ii",j,k
我一直在尝试使用像
这样的东西awk -F ',' '{print $7}'
我得到了
"gg
但我需要结果
gg,hh,ii
我可以使用简单的单行awk或sed命令完成它而不需要任何解析器
请帮助
答案 0 :(得分:1)
Perl救援!
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:requiresSmallestWidthDp="600"
android:smallScreens="true"
android:xlargeScreens="true" />
有关详细信息,请参阅Text::CSV_XS。 perl -MText::CSV_XS=csv -we 'csv(in => shift, fragment => "col=7")' -- file.csv
选项告诉fragment
函数只输出第7列。
答案 1 :(得分:0)
您可以使用:
awk -vFPAT='[^,]*|"[^"]*"' '{print $7}' file.csv
使用FPAT
定义字段内容,而不是定义字段分隔符FS
(-F
选项)。
对于awk
手册页:
FPAT:描述记录中字段内容的正则表达式。设置时,gawk将输入解析为字段,其中字段与正则表达式匹配,而不是使用FS变量的值作为字段分隔符。