【发布时间】:2014-05-23 21:04:45
【问题描述】:
我使用 sed 命令从文件中删除前两行和最后一行,我想将输出重定向到 SAME 文件
示例:
sed '1,2d' '$d' pra >pra
这会从文件中删除前两行和最后一行。但是当我尝试将输出重定向到同一文件时,会出现问题。
当我打开并看到重定向的文件 pra 时,文件中没有任何内容。
是否有更好的方法来做到这一点..从文件中删除前两行和最后一行并使用相同的文件名保存它。
【问题讨论】:
-
改用
sed -i '1,2d' ...。 -
许多问题会告诉您读取和写入同一个文件会截断它。
-
@DEVNULL 我正在使用 Solaris 10 并且在 kshell 中工作,这是一个非法的选项。
-
@devnull 有没有更好的方法,即使用任何其他选项
-
当您说
command > file时,文件会立即被截断并打开以进行写入,甚至在命令执行之前。