您的位置:首页 > 运维架构 > Linux

linux下用命令删除文本的一句话

2015-07-30 17:41 756 查看
由于写脚本需要修改文本文件里的内容,在网上只搜到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命令用 空格 代字符串,解决了这样的问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: