Linux

SED 查找並替換為“或”

  • July 7, 2009

經過我自己的一些Google搜尋/研究後,我還沒有找到明確的答案,

我正在搜尋整個 /var/www/html/ 文件夾中是否出現“127.0.0.1”並將其替換為伺服器 IP 地址(我們正在將數據庫從本地框中移出)。

這適用於 Localhost 和 127.0.0.1。雖然我可以跑

find * | xargs sed -i a/127.0.0.1/ser.ver.ip.addr/g

兩次,一旦替換 127.0.0.1 和 localhost,我寧願不必執行兩個命令。

我可以在不中斷的情況下執行 OR 語句嗎?

就像是:

find * | xargs sed -i a/127.0.0.1|localhost/ser.ver.ip.addr/g
                            • 編輯 - - - - - - - - - - - -

我發現了一種更可靠的搜尋和替換方法,

find * -type f -exec sed -i 's/127.0.0.1/ser.ver.ip.addr/g' {} \;

但是我似乎無法讓搜尋語句匹配 127.0.0.1localhost。

find . -type f -print | xargs sed -i -e 's/127.0.0.1/207.200.19.177/g' -e 's/localhost/207.200.19.177/g'

我認為您必須將其放在引號中:

find * | xargs sed -i "a/127.0.0.1|localhost/ser.ver.ip.addr/g"

引用自:https://serverfault.com/questions/36686