通过脚本部分覆盖文件

通过脚本部分覆盖文件

我懂了

<command> >> <filepath>将命令行附加到文件

<command> > <filepath>用给定的命令替换文件的全部内容。

如何将命令传递给文件,以便只有最后一行的文件是否被覆盖?

答案1

这与简单的覆盖和附加不同,不是内置在 shell 中的。您必须分两步进行,首先删除最后一行,然后附加:

X=$(head -n -1 filepath)
echo "$X" > filepath
command >> filepath

或者您可以一次性用新内容覆盖:

X=$(head -n -1 test)
(echo "$X"; command) > test

请注意,在这两种情况下,我们首先将要保留在变量中的旧行作为单独的命令捕获。这是因为一旦带有“>”指令的命令开始执行,shell 就会清除文件,任何读取这些行的尝试都将为时已晚。

相关内容