
我正在本地系統中運行 Ubuntu 14.04 和 Magento 網站。
現在我有一個模組目錄,我想在當前資料夾及其子目錄中的所有檔案中用“MyCompany\Module”替換每次出現的“Magento\Module”,當然,它是遞歸的,但我想它不起作用,因為“ \" 存在於我的搜尋和替換字串中。
我已經嘗試過:
find ./ -type f -readable -writable -exec sed -i "s/Magento\\Module/MyCompany\\Module/g" {} \;
但這根本不起作用。
請大家幫忙,很緊急。
答案1
shell 可能正在消耗其中一種轉義:
$ echo sed "s/Magento\\Module/MyCompany\\Module/g"
sed s/Magento\Module/MyCompany\Module/g
因此,要么添加額外的轉義,要么用單引號引用整個表達式:
$ echo sed "s/Magento\\\Module/MyCompany\\\Module/g"
sed s/Magento\\Module/MyCompany\\Module/g
$ echo sed 's/Magento\\Module/MyCompany\\Module/g'
sed s/Magento\\Module/MyCompany\\Module/g
測試它:
$ echo 'every occurrence of "Magento\Module"' | sed 's/Magento\\Module/MyCompany\\Module/g'
every occurrence of "MyCompany\Module"