シェルスクリプトを使用してテキスト文字列を変更する方法

シェルスクリプトを使用してテキスト文字列を変更する方法

/家/一時.txt

http://url_new_address.com

/ホーム/リスト.txt

URL http://url_address.com:URL1
URL http://url_address.com:URL2
URL http://url_address.com:URL3

シェルスクリプトを使用してtemp.txtの行をlist.txtのURL2に置き換えるにはどうすればよいですか?

コマンド後

/ホーム/リスト.txt

URL http://url_address.com:URL1
URL http://url_new_address.com:URL2
URL http://url_address.com:URL3

ベストアンサー1

ご提案いただいたdon_crisstiとStéphane Chazelasに感謝します。解決策私は次のことを思い出しました。

#!/bin/sh

lhs=':URL2'
rhs="URL $(cat temp.txt):URL2"
escaped_lhs=$(printf '%s\n' "$lhs" | sed 's:[][\/.^$*]:\\&:g')
escaped_rhs=$(printf '%s\n' "$rhs" | sed 's:[\/&]:\\&:g;$!s/$/\\/')

sed "s/.*$escaped_lhs/$escaped_rhs/" list.txt

次に、末尾を含む行を見つけて:URL2次に置き換えます。

URL http://url_new_address.com:URL2

おすすめ記事