【发布时间】:2014-01-20 18:28:55
【问题描述】:
我有一个如下所示的 CSV 文件:
account,name,,,,type,"$a,mount.00",description
account,name,so,me,thing,type,$amount,"description
account,name,so,me,thing
account,name,so,me,thing,type,$amount,"description"
基本上,我想清理整个文件,我认为最简单的方法是为每一列添加引号并确保每一行都有 13 列。唯一的问题是,有些列有开引号,但没有闭引号。这似乎只发生在行尾,但文件太大,我无法完全验证。
通过 Perl 清理它的最佳方法是什么?
谢谢! - 马特
【问题讨论】:
-
你的意思是加双引号?
-
问题在于有开引号的列,没有右引号。真的没有办法知道结束报价的去向。例如
account,name,,,,type,"$a,mount.00,结束引号可以是account,name,,,,type,"$a",mount.00或account,name,,,,type,"$a,mount.00" -
如果真的有“无法知道结束引号的去向”,那么我看不出我们可以如何帮助您。只有您足够了解您的数据,才能描述如何对其进行清理。完成后,欢迎您帮助在 Perl 中实现它。
-
@Borodin - 我不是那个说“没有办法知道”的人。
-
是否有任何字段 data 包含逗号或双引号?
标签: regex perl csv formatting