使用 SED 从文件中删除一行并将输出重定向到同一文件

pra*_*_23 1 unix ksh solaris sed

我使用 sed 命令从文件中删除前两行和最后一行,我想将输出重定向到相同的文件

例子 :

sed '1,2d' '$d' pra >pra
Run Code Online (Sandbox Code Playgroud)

这会从文件中删除前两行和最后一行。但是当我尝试将输出重定向到同一文件时,就会出现问题。

当我打开并看到重定向的文件时,文件中pra没有任何内容。

有没有更好的方法来做到这一点..从文件中删除前两行和最后一行,并用相同的文件名保存它。

pok*_*ero 5

要将输出保存到同一文件,请使用 --in-place 或 -i 修饰符。

例如

sed -i options_you_want name_of_file_to_change
Run Code Online (Sandbox Code Playgroud)

它比重定向到临时文件,然后返回到原始文件要简洁得多。

正如下面所指出的, --in-place 在 Solaris 上可能不可用......