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

Lon*_*guy 4 unix linux

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

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

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

fed*_*qui 5

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

sed -i '1s/^/your heading line\n/' file
Run Code Online (Sandbox Code Playgroud)

最后:

echo "my new line" >> file
Run Code Online (Sandbox Code Playgroud)

测试

$ 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
Run Code Online (Sandbox Code Playgroud)

  • 仅在开头添加一行意味着重写整个文件。它不能只需要几秒钟。 (7认同)
  • 理想情况下,由于我们只在开头添加一行,我认为应该有一种创新的方式来使用某些工具/功能来实现这一点,而不是通常的 sed、awk 或其他脚本。它应该只需要几秒钟。 (2认同)