一見単純な検索と置換複数のファイル間で
2035 ワード
多くのメソッドが1つのファイルで単語を検索して置換するために存在しますが、複数の無関係なファイルをまたがって更新する文字列を持っているとき、あなたはどうしますか?もちろん、コマンドラインツールの力をハーネス!
まず、必要があります
さらに使用して検索を調整
Vimの印象を使う
強力なプラグを差し上げましょう
すべてのバッファを通過し終えたら、完了したすべての作業を保存します.
まず、必要があります
find
すべてのファイルを変更します.一緒に何を効果的に検索クエリのfind
本当にあなたの想像力によって制限されます.以下はPythonファイルを見つける簡単な例です.find . -name '*.py'
The -name
で検索すると、.py
, でもfind
することができます他の多くのテスト条件を含む-regex
テスト.ランfind --help
オプションの多数を見るには.さらに使用して検索を調整
grep
変更する文字列を含むファイルだけを取得するには、次のようにします.grep -le '\<a whale\>'
The -l
オプションを使用すると、パターンを含むすべてのファイルのファイル名を指定できます-e
) それは「クジラ」にマッチします.Vimの印象を使う
:bufdo
複数のバッファ間で同じコマンドを実行し、これらのファイルのすべてを対話的に動作させることができます.強力なプラグを差し上げましょう
find
+ grep
vimに結果を示します.vim `find . -name '*.py' \
-exec grep -le '\<a whale\>' {} \;`
VIMに私たちの検索を渡すためにバックチック拡張を使用して行く準備ができて複数のバッファを開きます.(Do :h backtick-expansion
詳細はvimで今、あなたはvimコマンドを適用することができます:bufdo
これらのファイルの全てに対して、対話型検索や置換などのアクションを実行します.:bufdo %s/a whale/a bowl of petunias/gce
The g
“グローバル”のすべての行にパターンの出現を変更します.The e
パターンが見つからなかった場合にエラーを送出します.The c
オプションは、このインタラクティブになりますあなたが自信を感じている場合は、それぞれを確認せずに変更を行うには省略することができます.すべてのバッファを通過し終えたら、完了したすべての作業を保存します.
:bufdo wq!
その後、あなたの保存された時間と労力の栄光にバスク.Reference
この問題について(一見単純な検索と置換複数のファイル間で), 我々は、より多くの情報をここで見つけました https://dev.to/victoria/deceptively-simple-search-and-replace-across-multiple-files-249aテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol