参考:

https://blog.csdn.net/fisherming/article/details/105665046

https://www.linuxidc.com/Linux/2011-04/34179.htm

https://blog.51cto.com/u_15127625/4395734

删除文件中含特定字符串的行[bash]:

sed -e ‘/abc/d’ a.txt // 删除a.txt中含"abc"的行,但不改变a.txt文件本身,操作之后的结果在终端显示

sed -e ‘/abc/d’ a.txt > a.log // 删除a.txt中含"abc"的行,将操作之后的结果保存到a.log

sed ‘/abc/d;/efg/d’ a.txt > a.log // 删除含字符串"abc"或“efg"的行,将结果保存到a.log

其中,“abc"也可以用正则表达式来代替。

如果有一个abc.txt文件,内容是:

aaa

bbb

ccc

ddd

eee

fff

如果要删除aaa,那么脚本可以这样写:

sed -i '/aaa/d' abc.txt

如果删除的是一个变量的值,假如变量是var,应该写成:

sed -i '/'“$var”'/d' abc.txt

至于grep -v aaa abc.txt这个方法,是无法将修改的结果写入abc.txt中去的