我正在建立一個.sed文件來啓動腳本安裝多個Apache服務器。我試圖讓sed匹配.conf文件中的默認網站管理員電子郵件地址,該文件與此egrep非常相稱。然而,當我使用sed來嘗試替代搜索和替換時,我不會返回任何錯誤,但它也不會進行任何替換。我通過再次運行相同的egrep命令來測試它。SED命令匹配正則表達式,但不能替代
egrep -o '\b[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+(\.[A-Za-z]{2,4})?\b' /home/test/httpd.conf
回報
[email protected]
[email protected]
[email protected]
我試圖用sed命令是
sed -i '/ServerAdmin/ s/\b[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+(\.[A-Za-z]{2,4})?\b/[email protected]/g' /home/test/httpd.conf
運行我試圖通過再次運行egrep的驗證結果後,它返回相同3個電子郵件地址表示沒有被替換。
我不得不使這個擴展的正則表達式,它現在取代了除地址之外的所有地址。它錯過了「[email protected]」 更新:可能是因爲它沒有在@ – 2013-02-11 00:39:34
是你的'admin @ your-domain.com'在conf文件中的'ServerAdmin'之後的區域中尋找「 - 」? – Kent 2013-02-11 00:46:34
不知道,我一直在與這個戰鬥,忘了甚至檢查。猜我已經回答了我自己的問題,然後與它需要擴展正則表達式 – 2013-02-11 00:58:54