我有一个包含\r\nexports.host = "192.168.24.76"
的字符串。此处的IP地址不是固定的,并且是可变的。
我想使用正则表达式查找此表达式并替换bash中的IP地址。
例如,使其为\r\nexports.host = "192.168.24.77"
,然后在下一次迭代中将其更改为\r\nexports.host = "192.168.24.78"
。无论如何,我可以在bash脚本中使用正则表达式来做到这一点吗?
就目前而言,我的做法是:sed -i -e 's/"192.168.24.76"/"'$1'"/g' ./dist/config.*.js
,但只是发现初始IP地址不会是静态的,可以是任何值
答案 0 :(得分:1)
请您尝试以下。
awk -v new_ip="your_new_ip" '
match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/){
print substr($0,1,RSTART-1) new_ip substr($0,RSTART+RLENGTH);
next
}
1' Input_file
如果您要将输出的值保存到Input_file本身中,则也将> temp_file && mv temp_file Input_file
附加到上述代码中。