repositoryは「リポジトリ」と表記するのが順当のよう。
「レポジトリ」としていた表記を「リポジトリ」に改めるため、ブログ投稿内で「レポジトリ」を用いているものを調べてみた。

source/_postsで端末を開き、下記コマンドで抽出。

$ grep "レポジトリ" *

*ですべてのファイルを検索対象に。
.mdファイルのみを対象にするなら*.mdに。
またサブディレクトリ以下を再帰的に検索する場合は

$ grep -r "検索ワード" *

たくさんあって手作業で修正するのは大変そうなので、下記コマンドですべての.mdファイル内の「レポジトリ」を「リポジトリ」に一括変換。(元ファイルは拡張子.bakを付けてバックアップ)

$ perl -p -i.bak -e 's/レポジトリ/リポジトリ/g' *.md

正常に変換されたことを確認後、.bakファイルを一括削除。

$ find ./ -type f -name "*.bak" -delete

もし不具合があれば、特定のファイルに対しては下記で復帰可能。
(example.md.bakをexample.mdに名称変更し上書き)

$ mv example.md.bak example.md

ただし、mvコマンドは複数のファイル名の一括変換は出来ないようなので、すべてのファイルを元に戻す場合は、一旦すべての.mdファイルを削除してから、すべての.md.bakファイルの拡張子を.mdに変換。
(renameコマンドは上書きは出来ないようなので)

$ find ./ -type f -name "*.md" -delete
$ rename .md.bak .md *.bak

以前はrename 's/.md.bak/.md/' *.bakでファイル名を一括変換出来てたと思うのだが、rename .md.bak .md *.bakでないと上手くいかない。

(参照記事)
Linuxコマンド逆引き大全 - 【 ファイルから文字列を検索する 】:ITpro
複数ファイル内の文字列を置換して上書き保存する

ーー
(追記)
perlで語句を一括変換する際、複数のファイルを対象にしたい時は、間に半角スペースを入れて列記。
(複数ファイルの時も正規表現が可能)

$ perl -i -p -e 's/置換前の語句/置換後の語句/g' A.html B.xml

$ perl -i -p -e 's/置換前の語句/置換後の語句/g' *.html *.xml *.txt
表示   このエントリーをはてなブックマークに追加

Comments

2014年12月12日