我试图更换此配置中的端口,但我遇到问题基本上忽略了我。我在这做错了什么?
显示我想要替换的行。
b@a:/home/mse1# cat server.properties |grep port
server-port=33333
然后向您展示我在其他几个脚本中使用的sed来执行完全相同的操作,因此无法完成任务。
b@a:/home/mse1# sed 's/server-port=.*`\n`/server-port=33334/g' /home/mse1/server.properties |grep server-port
server-port=33333
答案 0 :(得分:1)
因为您(正确地)使用了单引号,所以sed
只能将后引号视为模式的一部分。此外,\n
并不意味着在该上下文中使用换行符 - 您使用$
来查找该行的结尾。因此:
sed 's/^server-port=.*$/server-port=33334/' …
当一行只有一个匹配时,您不需要g
修饰符,因为您在开始时有^
而在结尾有$
答案 1 :(得分:0)
尝试以下代码
sed -i.bak s/server-port=33333/server-port=33334/g /home/mse1/server.properties