永久删除文件的特​​定最后一个数字行

时间:2014-06-09 01:28:52

标签: bash sed

我在bash中使用了以下命令来删除bash.bashrc的最后两行(我添加了一些不好的行):sed '69,70d' /etc/bash.bashrc

但它并没有像我想的那样永久删除这些行。

2 个答案:

答案 0 :(得分:0)

这应该可以删除最后两行:

sed -n -e :a -e '1,2!{P;N;D;};N;ba' /etc/bash.bashrc

然后如果你通过| cat > /etc/bash.bashrc管道,它将用新的缩短内容覆盖文件:

sed -n -e :a -e '1,2!{P;N;D;};N;ba' /etc/bash.bashrc | cat > /etc/bash.bashrc

答案 1 :(得分:0)

一种解决方案是将head -n -<n>组合使用tee

虽然head不支持sed -i支持的就地编辑 ,您可以使用tee命令完成就地编辑。

请参阅:sed command find and replace in file and overwrite file doesn't work, it empties the file

head -n -2 /etc/bash.bashrc | sudo tee /etc/bash.bashrc >/dev/null