【发布时间】:2017-01-19 01:25:15
【问题描述】:
示例“null.csv”文件包含
71131940,2015-05-01,"JEWELLERY,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”拆分为 珠宝,物品。
我们将不胜感激。
【问题讨论】:
-
如果您需要遵守所有关于引用和转义的规则,CSV 解析会很痛苦。如果您可以将 python 用于您的解决方案,它会变得更容易。例如
python -c 'import csv;print "\n".join(list("\t".join(row) for row in list(csv.reader(open("null.csv")))))' -
Eric 感谢您的快速回复,但我正在寻找可以让我这样做的 shell 脚本。
-
我一直想知道是谁提出了“使用 shell 脚本编辑 CSV、JSON 或 XML”之类的要求。不过不管怎样,this这个小程序可以帮助你实现你的梦想,如果把它加到图片中不违反要求,那就是。
-
@SatoKatsura 非常感谢。它确实帮了我很多忙!甚至没想到会看到这样的解决方案,并且由于自述文件中所述的确切原因而使我头疼了好几个小时。