
ローカル システムで Ubuntu 14.04 と Magento Web サイトを実行しています。
現在、モジュール ディレクトリがあり、この現在のフォルダーとそのサブディレクトリ内のすべてのファイルで「Magento\Module」のすべての出現を「MyCompany\Module」に再帰的に置き換えたいのですが、検索と置換の文字列に「\」があるために機能していないようです。
すでに試しました:
find ./ -type f -readable -writable -exec sed -i "s/Magento\\Module/MyCompany\\Module/g" {} \;
しかし、全く機能しません。
誰か助けてください、緊急です。
答え1
シェルはエスケープの 1 つを消費している可能性があります。
$ 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"