Help us understand the problem. What is going on with this article?

git管理下のファイル内の文字列を一括置換するワンライナー

More than 5 years have passed since last update.

例えばすべてのgetByIdfetchByIdに変えたいときに打つ。

git grep -l getById | xargs perl -pi -e 's@getById@fetchById@g'

解説

git grep -l

対象の文字列が現れるファイル名だけ列挙する。

perl -pi -e 's/aaa/bbb/g' filename

perlのドキュメントにも出てくるイディオム的なオプションで、ファイルの中の文字列を置換する。

ファイル名はそのままで内容を置換するのはGNU sedにも -i / --in-place オプションがあるが、Macのsedだと使えないのでperlでやると良い。

/@ でも % でも適当な記号で良い。スラッシュはコード内に出てくることが多いので、自分は @ をよく使う。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away