我有一个配置文件,其中包含一行ServerIP=
。现在我想使用find this line并为其添加一个新的IP地址,即用ServerIP=192.168.0.101
替换它,命令是什么样的?
答案 0 :(得分:2)
您可以使用find-and-replace命令执行此操作:
sed -e 's/\(^ServerIP=\)/\1192.168.0.101/g' your_file
我们是在整个文件中执行此操作还是仅在一个位置执行此操作?上面的命令应该在任何地方替换它。你必须在某处发送输出。我永远不会使用sed
进行编辑,因为我犯了太多错误。
一个棘手的问题是这个部分\1192.168.0.101
,它实际上可以像这样分解:
\1 --> the thing we captured
192.168.0.101 --> the thing we are placing IMMEDIATELY after the thing we captured
此外,您可能有其他线条看起来有点不同。但是,在未来,请查找“sed capture and replace”。
答案 1 :(得分:1)
无论ServerIP中是否存在现有值,这个都可以使用:
sed -i 's@\([[:blank:]]*ServerIP=\)[[:digit:].]*@\1192.168.0.101@' file
我还建议你尝试使用像VIM或Nano这样的CLI编辑器来学习。
答案 2 :(得分:0)
尝试:
sed -i 's/^ *ServerIP=/&192.168.0.101/' file
答案 3 :(得分:0)
我愿意:
sed -i 's/^ServerIP=$/ServerIP=192.168.0.101/' file.config