【发布时间】:2012-08-13 09:35:31
【问题描述】:
我很难将大型 (50GB) csv 文件分成更小的部分。每行有几千个字段。一些字段是双引号中的字符串,其他字段是整数、小数和布尔值。
我想逐行解析文件并按每行中的字段数分割。字符串可能包含几个逗号(例如 ),以及一些空字段。
,,1,30,50,"父子三女以$4,000出售" ,,,,, 12,,,20.9,0,
我尝试过使用
perl -pe' s{("[^"]+")}{($x=$1)=~tr/,/|/;$x}ge ' file >> file2
将引号内的逗号更改为 |但这没有用。我打算使用
awk -F"|" conditional statement appending to new k_fld_files file2
请问有更简单的方法吗?我正在查看 python,但我可能需要一个实用程序来逐行流式处理文件。
【问题讨论】:
-
那么,一列是否意味着一个文件?
-
这是一行的一部分。有几百万行。
-
最好使用未包含在数据中的字段分隔符重新导出文件。 '|' char 通常是安全且可见的,不像另一个最喜欢的 tab char。祝你好运。