我需要在大文件上执行2个unix命令(.csv用\0001
分隔,几百万行,超过15gb,在服务器上有24个512gb ram)。
我需要tr
(将\0001
替换为/t
),然后sed
将一个小字符串添加到每行的末尾。
问题是我第一次运行TR然后,在将文件的所有行解析为新文件后,我执行sed
命令添加到每一行。这花了很多时间!
我是否有办法只为exec tr
和sed
解析文件的每一行?
答案 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}}