/ home/temp.txt
http://url_new_address.com
/ home/list.txt
URL http://url_address.com:URL1
URL http://url_address.com:URL2
URL http://url_address.com:URL3
シェルスクリプトを使用して、temp.txtの行をlist.txtのURL2に置き換えるにはどうすればよいですか?
コマンド後
/ home/list.txt
URL http://url_address.com:URL1
URL http://url_new_address.com:URL2
URL http://url_address.com:URL3
Don_crisstiの提案とStéphaneChazelasのおかげで 解決策 私は次のことを思いついた:
#!/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