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

私が抱えている問題は、3 つの異なる変数の組み合わせである可能性がありますXYZab簡単にするために、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 に答える