如何在Linux中的一个非常大的文件的开头附加一行?

时间:2013-12-12 12:15:21

标签: linux unix

我有一个大约45 GB的大文本文件,需要在文件的开头和结尾添加一行。实现这一目标的最快方法是什么?我无法访问任何大数据框架,如Hadoop等。

另外,如果我还要在这个大文件中进行字符串替换,是否有类似的有效方法?

我尝试使用echo命令,它确实需要很长时间。

2 个答案:

答案 0 :(得分:3)

您可以使用此sed在开头添加一行:

sed -i '1s/^/your heading line\n/' file

到最后:

echo "my new line" >> file

测试

$ cat a
hello
bye

$ sed -i '1s/^/new line sample\n/' a

$ cat a
new line sample
hello
bye


$ echo "my new line" >> a

$ cat a
new line sample
hello
bye
my new line

答案 1 :(得分:2)

使用sed,您可以说:

sed -e '1ifoo' -e '$abar'

这会在文件顶部插入foo,在文件末尾插入bar

$ seq 5 | sed -e '1ifoo' -e '$abar'
foo
1
2
3
4
5
bar