2

私はいくつかのコードをリファクタリングしていて、ある名前を別の名前に置き換えることにしましfoobar。それらは複数.cc.hファイルに表示されるため、次から変更したいと思います。

Foo key(); 

Bar key();

それだけです。Unix で出現するすべてのFoobyを置き換えますBar。そして、ファイルは同じディレクトリにあります。私は考えました

sed -e {'s/Foo/Bar/g'}

しかし、それがうまくいくかどうかはわかりません。

4

5 に答える 5

8

これでうまくいくはずです:

sed -i'.bak' 's/\bFoo\b/Bar/g' *.files
于 2013-06-13T23:59:19.327 に答える
1

私はsedを使用します:

sed -i.bak -e '/Foo/ s//Bar/g' /path/to/dir/*.cc

*.h ファイルに対して繰り返します

于 2013-06-13T23:59:26.297 に答える
1

私はsedをあまり使用しませんが、コマンドラインでPerlにアクセスできる場合(多くのUNIXがそうしています)、次のことができます:

perl -pi -e 's/Foo key/Bar key/g' `find ./ -name '*.h' -o -name '*.cc'`

これは、現在のディレクトリ内の .h または .cc で終わるすべてのファイルを (再帰的に) 検索し、Perl を使用して各ファイルの 'Foo キー' を 'Bar キー' に置き換えます。

于 2013-06-14T00:04:21.673 に答える
0

おそらく perl がインストールされているでしょう (UNIX の場合)。

perl -e "s/Foo/Bar/g;" -pi.save $(find path/to/DIRECTORY -type f)

ちょっとした保険として必要な場合は、元のファイルのバックアップが提供されることに注意してください。

それ以外の場合は、@Kevin が言及したことを実行して、IDE リファクタリング機能を使用するだけです。

注: Vimを使用しているのを見たところですが、これを行う方法についての簡単なチュートリアルがあります

于 2013-06-13T23:59:09.173 に答える