我有以下要求
字符串1:http://gaa-dev.gk.gbcd:9701/analytics
字符串2:https://gaa-prod.gk.gbvd/analytics
在/home/gaauser下的不同文件(xml内容)中大约有40个不同的位置
我要用String2替换String1
尝试过SED,但是没有运气,我现在被击中了。任何投入都非常感谢。
谢谢

最佳答案

需要两个修复:
由于字符串中有/,建议使用其他分隔符,或者需要通过转义告诉sed它不是分隔符。
由于您使用的是变量,请使用双引号允许它们进行插值。

str1='http://gaa-dev.gk.gbcd:9701/analytics'
str2='https://gaa-prod.gk.gbvd/analytics'

echo 'http://gaa-dev.gk.gbcd:9701/analytics' | sed "s/$str1/$str2/"
sed: -e expression #1, char 11: unknown option to `s'

echo 'http://gaa-dev.gk.gbcd:9701/analytics' | sed "s|$str1|$str2|"
https://gaa-prod.gk.gbvd/analytics

关于linux - Linux中一组文件中的SED替换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23568630/

10-10 10:30