查找并替换 SSH 命令?

Find and replace SSH command?

你好,我需要帮助才能用 ssh 和 sed 替换文件中的一行。

问题如下我有一个字符串例如:

我的字符串=1234

重点是 = 之后并不总是 1234,所以我无法替换该行。

sed -i 's/mystring =/mystring=1234/g' file.ini

当我 运行 时发生了两件事:

  1. mystring = 12341234(添加数字)
  2. mystring = 123412345(不要删除它,留在那里)

如果变量 (sed -i 's/mystring=/mystring=1234/g' file.ini)被执行了两次以上,它所做的就是在末尾添加数字。

这就是为什么我需要替换整行的原因,如果完成超过 1 次,您会看到它始终保持不变,如果不同,则将其更改为在命令。

从已经非常感谢你。

您始终可以匹配和替换整行:

sed -i 's/^mystring=.*/mystring=newvalue/' yourfile

.* 在正则表达式中匹配任意数量的字符,包括 none.

您还可以c更改包含特定模式的所有行:

sed -i '/^mystring=/c\
mystring=newvalue' yourfile

或者使用 GNU sed:

sed -ie '/^mystring=/c\' -e 'mystring=newvalue' yourfile