示例“ null.csv”文件包含
71131940,2015-05-01,“珠宝首饰,ITEM”,P ,, W
我有一个.csv文件,我要在其中处理逗号(,)和空值(,,),以便当我使用(,)分割文件的每一行时,它会忽略双引号内的逗号,并且不会给出输出如下所示。
71131940,2015-05-01,JEWELLERY,ITEM,P ,, W
我使用sed命令处理了空值,即(,,)通过将其替换为(,0,)
sed -i -e“ s / ,,,, 0,/ g” null.csv
并得到类似的输出
71131940,2015-05-01,JEWELLERY,ITEM,P,0,W
但是问题是,在这里我不想将“ JEWELLERY,ITEM”拆分为JEWELLERY,ITEM。
任何帮助将不胜感激。
我确信这已经被要求并回答了一百万遍了,但是无论如何,输入的格式都必须与您所显示的一样简单(例如,没有引号或引号内的换行符):
$ awk -v FPAT='[^,]*|"[^"]*"' '{for (i=1;i<=NF;i++) print i, $i}' file
1 71131940
2 2015-05-01
3 "JEWELLERY,ITEM"
4 P
5
6 W
上面的代码使用GNU awk FPAT
(请参阅https://www.gnu.org/software/gawk/manual/gawk.html#Splitting-By-Content)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句