我试图将一个值附加到 ssh 配置文件中,但如果指定两个不同的值,它似乎不起作用,它会读取第一个而不是第二个。
与其尝试重写整个文件,不如修改值,这似乎是明智的。
当前值为:
Port 22
我想进入并将值更改为:
Port 222
我能想到的最好的是:
sed -c -i "s/(Port *= *).*/1$REPLACEMENT_VALUE/" /etc/ssh/sshd_config
但是我知道这是不正确的,因为它的工作方式是期望在值和变量之间有一个等号。
我需要脚本来做这样的事情:
- 查找变量(即端口)
- 用我自己的线路切换这条线
我想你的意思是这个,
sed 's/.*bPortb.*/REPLACEMENT_VALUE/' file
例:
$ REPLACEMENT_VALUE="Port 222"
$ echo -e "foonPort 22" | sed "s/.*bPortb.*/$REPLACEMENT_VALUE/"
foo
Port 222