由于写脚本需要修改文本文件里的内容,在网上只搜到linux的一个命令 sed

具体用法参数网上有 很多资料,这里只讲一下如何修改和删除内容
<span style="font-size:18px;">[root@localhost binbin]#ls
 hello
[root@localhost binbin]#cat hello


binbin
haha
hehe
huhu
[root@localhost binbin]#sed -i 's/binbin/lichang/g' hello
[root@localhost binbin]#cat hello


lichang
haha
hehe
huhu
</span>

你会发现,文本里的binbin字符串变成了lichang,
sed -i 是将前面的内容(binbin)替换成后面的内容(lichang)


因此,我们用空格的替代字符串,就达到了我们删除字符串的目的
<span style="font-size:18px;">[root@localhost binbin]#cat hello


binbin
haha
hehe
huhu
[root@localhost binbin]#sed -i 's/binbin/ /g' hello
[root@localhost binbin]#cat hello




haha
hehe
huhu
</span>


这时,“binbin”这个字符创就被“ ”代替,效果就是删除了字符串

sed命令里假如有“.”“/”等特殊字符,需要使用"\"进行转义


<span style="font-size:18px;">[root@localhost binbin]#cat hello


binbin
haha
/usr/bin/
/usr/sbin
huhu
[root@localhost binbin]#sed -i 's//usr/bin// /g' hello
sed:-e 表达式 #1,字符 8:“s”的未知选项
[root@localhost binbin]#sed -i 's/\/usr\/bin\// /g' hello
[root@localhost binbin]#cat hello


binbin
haha

/usr/sbin
huhu
</span>


本人使用这个命令是由于项目中,需要使用shell脚本,写入~/.bash_profile 启动命令,将软件设置成开机自启动,
但是在卸载的时候需要将~/.bash_profile 里的启动命令删除掉,故使用sed命令用 空格 代字符串,解决了这样的问题







Logo

更多推荐