/집/임시.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