我试图在ssh配置文件中附加一个值,但是如果指定两个不同的值它似乎不起作用,它会读取第一个而不是第二个。
似乎合情合理,而不是试图重写整个文件,只是修改价值。
目前的价值是:
Port 22
我想进入并将值更改为:
Port 222
我能想出的最好的是:
sed -c -i "s/\(Port *= *\).*/\1$REPLACEMENT_VALUE/" /etc/ssh/sshd_config
但是我知道这是不对的,因为它的工作方式是期望在值和变量之间有一个等号。
我需要脚本执行以下操作:
答案 0 :(得分:3)
我认为你的意思是,
sed 's/.*\bPort\b.*/REPLACEMENT_VALUE/' file
示例:强>
$ REPLACEMENT_VALUE="Port 222"
$ echo -e "foo\nPort 22" | sed "s/.*\bPort\b.*/$REPLACEMENT_VALUE/"
foo
Port 222