自動化無しに生活無し

WEB開発関係を中心に備忘録をまとめています

【Linux】grepとsedとxargsで複数のファイルに点在する誤字を一括修正(置換)する

thumbnail

開発をしていて、複数の誤字が見つかった。

しかもその誤字は複数のファイルに点在している。

そんな時、ファイルを開いて1つずつ置換して修正しているようでは時間がかかりすぎる。

そこで、コマンド一発で複数のファイルに点在する誤字を一括修正する。

コマンド

置換対象のファイルのバックアップを取るならこっち

grep -rl "誤字" ./* | xargs sed -i ".bak" 's/誤字/修正文/g'

バックアップを取らないならこっち

grep -rl "誤字" ./* | xargs sed -i 's/誤字/修正文/g'

結論

grepとsedとxargsによる一括修正の方法は割と前から知っていたが、実行しようとするたびにGoogle検索しているようでは遅いので、これを機会にまとめることにした。

補足

特定の行に、文字列を追加するには?

カレントディレクトリ以下のマークダウンファイルの2行目にHelloWorldを追加している。バックアップも取っている。

find -name "*.md" -exec sed -i ".bak" '2a HelloWorld' {} \;

このようにfindとsedで解決できる。

スポンサーリンク