[root@localhost 3]# cat cmd.cfg
/usr/sbin/restart.sh --reboot
/usr/sbin/control.sh --start
[root@localhost 3]# A="/usr/sbin/control.sh --start"
[root@localhost 3]# sed -i '/$A/d' cmd.cfg
没有删掉
[root@localhost 3]# cat cmd.cfg
/usr/sbin/restart.sh --reboot
/usr/sbin/control.sh --start
[root@localhost 3]#
哦, 我没描述清楚,就是A那个变量是调用人传进来的,传进来的串就是这个格式,我不能要求调用者作修改,
我是需要在我执行sed命令的时候,有不有什么办法将传入的这种格式的字符串行匹配并且删除
sed -i "s#$A##" cmd.cfg
追问OK, 那一行是不在了 但是被一个空行给取代了,能不能不产生空行呢?
我刚这样做,好像可以了
sed -i "s#$A##;/^ *$/d" cmd.cfg
你看看有问题没?谢谢啊
你上面的语句,如果有其他的空行也删除了。
可以这样:
sed "/$(sed 's#/#\\/#g'<<<$A)/d" cmd.cfg
谢谢!
本回答被提问者和网友采纳