参考:
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中去的