Unix(MacOS High Sierraを実行)では、次のような検索/置換(複数のファイルから)へのいくつかの異なるアプローチを見ました。
perl -pi -w -e 's/SEARCH_FOR/REPLACE_WITH/g;' *.txt
sed
またはgrep
などを使用してください。問題は、検索文字列を正しくエスケープする方法です。たとえば、http://my.site/dir
に置き換える必要がある場合は、http://new.my.site/dir
エスケープしないと検索文字列にスラッシュを含めることはできません。
ベストアンサー1
具体的には、このコマンドを使用すると、Perlをs///
演算子として使用すると別の区切り文字を選択できるため、/
何もエスケープする必要がなくなり、作業が簡単になります。
したがって、以下が機能します。
perl -pi -w -e 's!http://my.site/dir!http://new.my.site/dir!g;' *.txt
!
ソース文字列または代替文字列に表示されない限り、他の任意の文字を使用できます。さらに、「スクリプト」全体がそのコンテンツの下にあるため、シェルはそれを解析しないため、シェルなどによる'
コンテンツの補間からも保護されます。$
バラよりhttps://perldoc.perl.org/perlop.html#Quote-and-Quote-like-Operatorsすべての詳細を確認してください。