如何使用sed执行此替换?

时间:2017-08-05 17:42:36

标签: linux bash

我需要用文件

替换文件中的一行
#Banner none

Banner /etc/motd

我试过了:

sed -i "s/^#Banner none/Banner /etc/motd/" /root/testfile.sh

哪个不行。你知道我怎么能做我想做的事吗?

2 个答案:

答案 0 :(得分:3)

由于替换中有斜杠,因此应使用除斜线之外的其他分隔符,例如逗号:

sed -i "s,^#Banner none,Banner /etc/motd/," /root/testfile.sh

否则,您必须转义路径中的斜杠:

sed -i "s/^#Banner none/Banner \/etc\/motd/"

答案 1 :(得分:2)

您需要逃避斜线或使用与" /"不同的分隔符。

可以使用

sed -i "s/^#Banner none/Banner \/etc\/motd/" /root/testfile.sh

sed -i "s,^#Banner none,Banner /etc/motd," /root/testfile.sh