我想在文件的每一行的开头添加一个特定的字符串。所以,如果我在someFile.txt中有以下两行,并想用管道添加日期字符串03/06/2012 -
Hello|there|john
Hello|there|joel
我会 -
03/06/2012|Hello|there|john
03/06/2012|Hello|there|joel
如何实现?
注意我文件中有130万行。
答案 0 :(得分:30)
$ awk '{print "03/06/2012|" $0;}' input.txt > output.txt
对于一些平均2010年硬件上具有130万行的文件,大约需要0.8秒。
答案 1 :(得分:3)
sed -i 's/^/03\/06\/2012|/' input.txt
答案 2 :(得分:1)
Perl解决方案:
perl -ne 'print "03/06/2012|$_"' input.txt > output.txt
为了好玩,我在/ tmp:
中对10次运行进行了基准测试 Rate awk perl_5.6.1 sed perl_5.22 perl_5.20
awk 2.08/s -- -10% -10% -26% -32%
perl_5.6.1 2.32/s 11% -- -0% -17% -24%
sed 2.33/s 12% 0% -- -17% -24%
perl_5.20 3.06/s 47% 32% 31% 9% --
使用此处创建的1.3M行输入文件进行测试:
perl -le 'while (1){exit if ++$n > 1300000; print $n}' > input.txt