SEDはURL文字列を置き換えます。

SEDはURL文字列を置き換えます。

現在の出力文字列を次に置き換えようとしています。

http://domain1.com/subfolder1/http://domain2.com/subfolder2

これにより、次のように出力されます。

http://domain2.com/subfolder2

SEDを使用してURLを後者のドメインに置き換えていますが、正しく機能しません。 「domain1」を「domain2」に設定するとうまくいきますが、文字列全体を置き換えることができます。

次のコードを使用してこれを実行しようとしています。

for FILE in `cat/WORKDIR/$inputControlFileName`; do sed -i -e  "s~$SEARCHTEXT~$REPLACEWITH~g" $OutputDirectory/$FILE; done;

私の検索パラメータはhttp://domain1.com/subdomain/http://domain2.com/subdomainで、代替パラメータは次のとおりです。http://domain2.com/subdomain

どんな案内にも感謝します。

更新 皆様のご協力ありがとうございます。ついにdomain1.com/domain.2.comを出力し、変数に保存された値をエスケープして動作させました。

答え1

この試み、

echo "http://domain1.com/subfolder1/http://domain2.com/subfolder2" | sed 's/^http.*http:/http:/'
http://domain2.com/subfolder2

答え2

もしあなたならいいえ持つ:URIでは、bash組み込みコマンドを介してのみこれを実行できます。

function last_addr(){
    IFS=: 
    string="$1"
    array=($string)
    echo -n http:; echo ${array[-1]}; unset IFS
}

last_addr 'http://domain1.com/subfolder1/http://domain2.com/subfolder2'

関連情報