【发布时间】:2019-12-30 09:57:39
【问题描述】:
输入
"India","Australia",1991-07-03,99,
1991-07-03,99,"India","Australia",
以上只是文件中的示例行。 1 行的长度是 1800(大约)。文件大小为 5 GB。每行以 (Carraige Feed 换行)字符结尾。我需要从中删除 , 。
输出
"India","Australia",1991-07-03,99
1991-07-03,99,"India","Australia"
我使用的命令
cat InputFile | sed 's~,\r~\r~g' > OutputFile.
问题
命令运行良好,但完成更改需要 15 分钟。
问题
还有其他快速/更好的方法可以快速完成这项工作吗?
【问题讨论】:
-
注意这里使用
cat没有意义,使用sed 's~,\r~\r~g' InputFile > OutputFile -
你真的必须删除尾随
,还是你可以例如用空格替换它? -
试试:
sed 's/,\r$//' file > output -
那么就没有办法重写 5 GB 的数据了。
-
顺便说一句,保留 DOS 行结尾似乎是错误的。