我在bash中使用了以下命令来删除bash.bashrc的最后两行(我添加了一些不好的行):sed '69,70d' /etc/bash.bashrc
但它并没有像我想的那样永久删除这些行。
答案 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