删除行包含之后的所有行?

删除行包含之后的所有行?

我有一个脚本,我想删除特定行之后的每一行。

我有一个命令,但它只是擦除整个文件?

sed -n '/twm &/q;p' ~/.xinitrc > ~/.xinitrc

转换如下:

some line
another line


some other line
twm &
more lines to be deleted
and more

some line
another line


some other line

答案1

由于父进程(您的 shell)设置了重定向您的sed命令运行后,会> ~/.xinitrc在您读取文件之前清除该文件。

阅读man sed并做类似的事情未经测试:

sed -i.bak  -e "/twm \&/,\$d" ~/.xinintc

这会在~/.xinitrc.bak.

相关内容