Linux:删除某文件中的指定行,求解

文件/usr/local/demo下有如下文本内容servicetomcatrestartping10.0.3.23echo"demo">>/usr/local/text... 文件/usr/local/demo下有如下文本内容
service tomcat restart
ping 10.0.3.23
echo "demo">>/usr/local/text
service ntpd restart

现在要找出包含"demo"的那行可以使用,sed -i '/demo/d' /usr/local/demo
但是如果我有多行都含有demo很可能造成误伤,所以想用下面的方式精确指定
sed -i '/echo "demo">>/usr/local/text/d' /usr/local/demo
但是明显这样写是不行的...有大哥有什么办法吗?
展开
 我来答
傲慢的王子啊
2014-03-05 · TA获得超过162个赞
知道小有建树答主
回答量:154
采纳率:0%
帮助的人:158万
展开全部
[root@localhost ~]# cat 升此颤file

service tomcat restartping

10.0.3.23

echo "demo">>/usr/local/text

service ntpd restart

[root@localhost ~]# grep -v '吵败echo "demo">>扒丛/usr/local/text' file

service tomcat restartping

10.0.3.23

service ntpd restart

重新输出到文件就好了。

更多追问追答
追问
大哥,你这个只是输出了之后的结果,但是并没有写入文件中呀,写入文件中的部分你也给小弟补上得了呗
追答
grep -v 'echo "demo">>/usr/local/text' file > file2
file是源文件
file2是输出文件
百度网友5311d79
2014-03-05 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3160万
展开全部

格式为 /正则表达式/

若正则表达式中含有 / 符号,需要用转义符。否则搞不清正则的起始和终止位置。

试姿消试下面这样:

sed -i '/echo "demo">>\/usr\/local\/text/d' /usr/local/demo

 这个可以直接修改迹猜知文件,而grep -v 需要重定向为新文件,然后再用“mv 新文件 原文件”来覆盖原文兆银件。

追问
非常感谢,只能选一个,您的答案是完美的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式