Text-Processing
如何使用 shell 腳本更改文本字元串
/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 和 shell 腳本?
命令後
/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é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