web-dev-qa-db-ja.com

Ubuntuは現在のディレクトリのファイルを再帰的に見つけて置換します

ローカルシステムでUbuntu 14.04とMagentoウェブサイトを実行しています。

現在、この現在のフォルダー内のすべてのファイルで「Magento\Module」のすべての出現箇所を「MyCompany\Module」に置き換えるモジュールディレクトリがあり、そのサブディレクトリは当然のことながら再帰的に機能しますが、「\"は私の検索にあり、文字列を置き換えます。

私はすでに試しました:

find ./ -type f -readable -writable -exec sed -i "s/Magento\\Module/MyCompany\\Module/g" {} \;

しかし、それはまったく機能しません。

誰か助けてください、緊急です。

1
Vicky Dev

シェルはエスケープの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"
0
steeldriver