使用 sed 将一个文件附加到另一个文件中

使用 sed 将一个文件附加到另一个文件中

我一直在尝试附加file.bak使用file.php此命令:

sed r file.php file.bak

它根据需要提供正确的输出。但是,它不会保存附加file.bakfile.php.

知道如何完成它吗?

答案1

你不需要sed这个。使用就足够了cat

cat file.bak >>file.php

这会将 的内容附加file.bak到 的最后file.php


程序sed将把r file.php内容输出file.php到标准输出对于每行输入。如果file.bak有多行,您将获得file.php插入的多个副本。

sed如果您想使用它来附加数据,这不是您想要的。

反而,cat忽略这里做得更好的事实,

sed '$r file.bak' file.php

file.bak直到到达最后一行才会读取file.php。这具有连接两个文件的内容的效果(首先是 的内容file.php,然后是 的内容file.bak)。

要将结果写回给file.php您,可以将输出重定向到新文件,然后将其移动到位(安全的方式):

sed '$r file.bak' file.php >tmpfile && mv tmpfile file.php

或者,您可以使用-i某些实现sed具有的选项(不安全的方式):

sed -i '$r file.bak' file.php

相关内容