我试图从 somefile
中获取前 4 行,将它们与 someotherfile
的内容连接起来并将其输出到 somefile
。
head -4 /somefile | cat - /someotherfile > /somefile
当我这样做时,someotherfile
的内容最终出现在 somefile
中,但不是前 4 行。如果我输出到一个完全不同的文件,那么它会很好用。
显然,尝试写入我正在读取的同一个文件时存在问题。完成此任务的最简单方法是什么?
我正在尝试在 RedHat Enterprise 6、bash shell 上执行此操作。
最佳答案
您可以将 head
输出保存到临时变量,如下所示:
HEAD="$(head -4 some file)"
(echo "$HEAD"; cat someotherfile) >some file
或者您可以删除从第 5 行开始的所有行,并将另一个文件的内容附加到末尾:
sed -i '5,$d' somefile
cat someotherfile >>somefile
关于linux - 如何连接两个文件并将结果写回原始文件之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26641940/