我使用sed命令从文件中删除前两行和最后一行,我想将输出重定向到SAME文件
示例:
sed '1,2d' '$d' pra >pra
这会删除前两行&文件的最后一行。但是当我尝试将输出重定向到同一文件时,会出现问题。
当我打开并看到重定向的文件pra
文件中没有任何内容。
有没有更好的方法来执行此操作..从文件中删除前两行和最后一行,并使用相同的文件名保存它。
答案 0 :(得分:2)
在Solaris 10上是不可能的,除非您将GNU sed作为可选包安装。无论如何,最安全的方法是使用中间文件并将-i选项与备份文件一起使用。
在Solaris 10上,您可以这样做:
sed '1,2d; $d' file > file.new && mv file.new file
答案 1 :(得分:2)
要将输出保存到同一文件,请使用--in-place或-i modifier。
E.g。
sed -i options_you_want name_of_file_to_change
它比重定向到临时文件,然后回到原始文件更整洁。
如下所述, - 在Solaris上可能无法使用...