1

我想对以下几行进行字符串替换。我不想替换任何未显示在 URL 格式中的事件,因此不应该替换secure.XYZ.ab.mydomain.com一行本身或可变格式 ( ) 的事件。$myvar = secure.XYZ.ab.mydomain.com

https://secure.XYZ.ab.mydomain.com -> https://secure.future.qa.mydomain.com

我遇到的问题是,XYZ并且ab可能是 3 个不同变量的组合。所以为了更容易,我想替换https://和 之前的所有内容.mydomain.com

忘了补充,我将循环浏览目录中的文件。

4

3 回答 3

2
 echo "https://secure.XYZ.ab.mydomain.com"|sed -r 's#(https://secure\.).*(\.mydomain.com)#\1future.qa\2#'              
https://secure.future.qa.mydomain.com

awk:

echo "https://secure.XYZ.ab.mydomain.com"|awk 'BEGIN{FS=OFS="."} {$2="future";$3="qa"}1'
 https://secure.future.qa.mydomain.com
于 2012-12-17T21:37:06.267 回答
1

你可以:

echo "https://secure.XYZ.ab.mydomain.com" | sed -e 's+https://[^/]*\.mydomain.com+https://secure.future.qa.mydomain.com+'

如果它在文件中,您可以:

sed -ie 's+https://[^/]*\.mydomain.com+https://secure.future.qa.mydomain.com+g' <filename>
于 2012-12-17T21:35:07.637 回答
0

在目录中的所有文件中搜索和替换:

find . -maxdepth 1 -type f -exec sed 's_https://.*[.]mydomain[.]com_https://secure.future.qa.mydomain.com_g' {} \;
于 2012-12-17T21:57:46.827 回答