Ubuntu在當前目錄的檔案中遞歸查找和替換

Ubuntu在當前目錄的檔案中遞歸查找和替換

我正在本地系統中運行 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"

相關內容