TR + SED一次性在大文件上

时间:2014-07-02 09:09:12

标签: linux unix sed tr

我需要在大文件上执行2个unix命令(.csv用\0001分隔,几百万行,超过15gb,在服务器上有24个512gb ram)。

我需要tr(将\0001替换为/t),然后sed将一个小字符串添加到每行的末尾。

问题是我第一次运行TR然后,在将文件的所有行解析为新文件后,我执行sed命令添加到每一行。这花了很多时间!

我是否有办法只为exec trsed解析文件的每一行?

2 个答案:

答案 0 :(得分:5)

您只能使用sed并且每行应用两个操作:

sed 's/\\0001/\t/g;s/$/TEXT_TO_APPEND/' input.file

第一个s/命令将\0001替换为\t,第二个命令允许您附加一些文字。

答案 1 :(得分:2)

您可以使用unix管道将STOUT tr STDIN sed连接到cat input.file | tr -opt -ions | sed 's/../../g' > output.file

{{1}}