【发布时间】:2019-06-03 15:51:51
【问题描述】:
我试图弄清楚如何替换配置文件中的某些文本,即使我并不总是知道完整的内容。
例如:
[IP] 192.168.1.0
我想更改 IP 值,即使我当时可能不知道它可能是什么。
我认为 SED 是可行的方法,但这似乎只处理您确切知道要替换什么的替换:
sed -i -e 's/few/asd/g' hello.txt
有没有办法可以匹配[IP] 并换行换新的,即使我不知道 IP 的值是多少?
【问题讨论】:
-
s/pattern/replacement/中,pattern 可以匹配任意正则表达式而不是固定字符串。 -
只需使用:
sed 's/\[IP\] .*/replacement/' file -
不带正则表达式的 awk 更容易:
awk -v repl="$newip" '$1=="[IP]"{$2 = repl} 1' file