Giblogは記事の検索・置換が簡単

Giblogは記事の検索・置換が簡単です。Giblogは、Webサイトの記事のデータをすべてファイルとして持っています。すべてがファイルなので、LinuxコマンドやPerlを使って、記事を簡単に検索・置換できます。

「あー、ブログ記事のこの言葉を一括置換したいのにー」そんなときは、たまにありませんか。Giblogは、LinuxコマンドとPerlを使って、簡単に実現できます。

記事を検索してみよう - grepコマンド

記事を検索するには、grepコマンドが使えますよ。grepコマンドというのは、ファイルの中に、特定の文字列が含まれていることを調べることができるLinuxのコマンドです。ディレクトリの中にあるファイルすべてを対象にする場合は「-r」オプションを使用します。

grep -r 文字列 対象ディレクトリ

grepコマンドを使って、「templates」ディレクトリの下にある、記事の中にある「ステーキ」という言葉を探してみましょう。

grep -r "ステーキ" templates

以下のように「ステーキ」が含まれている行が、ファイル名と一緒に画面に出力されます。

templates/blog/20190821075954.html:動的なステーキに、プラグインなどのユーザープログラムを追加した場合は、プラグインを追加するたびに、ステーキが遅くなります。
templates/blog/20190814071930.html:さらに、自分でステーキを作って、ドメインを取得して、アウトプットしている人は、さらに少ないです。
templates/blog/20190814071930.html:Giblogでステーキを作ると、少なくとも、自分でステーキを作れる人なんだということが、わかります。
templates/index.html:    レンタルサーバーなしで、本格的なステーキ制作を、Window, macOS, Linuxのパソコン上でお試しいただけます。環境のセッティングは、手順を進めるだけ。
templates/start.html:  <li><a href="/blog/20190416153053.html">Windowsでステーキ作成の環境を構築する</a></li>
templates/start.html:<h3>ステーキのデザイン</h3>
templates/start.html:<h3>ステーキを改造する</h3>

初めてgrepを使った方は、びっくりしたのではないでしょうか。こんなに簡単に素早く検索ができるんですね。

HTMLファイルとCSSだけに限定する

検索結果には、画像ファイルなどの、すべての結果が含まれてしまいますから、HTMLファイルやCSSなどのテキストファイルだけを抜き出したいですね。

そういう場合は、検索結果からさらにHTMLファイルを絞り込むことができます。Linuxコマンドのパイプ、grep、Perlの正規表現をうまく組み合わせます。

# ステーキを含んでいるHTMLファイルとCSSファイルだけに絞りこむ
grep -r "ステーキ" templates | grep -P "(\.html|\.css)"

こう書くと、ステーキを含んでいるHTMLファイルとCSSファイルだけに絞りこむことができるんです。

理解を深めたい方は、Linuxコマンド、grep、Perlの正規表現で検索してみてください。

Perlを使って置換する

記事の中のこの単語をを置換したいという場合がありますよね。こういう場合も、LinuxコマンドとPerlをうまく組み合わせればいけるんです。

ステーキを寿司に置換してみましょう。

先ほどのコマンドを少し修正します。なぜこれでいけるのかということは、別の場所で解説しますね。まず置換が、こんなに簡単にできるんだーということを知ってもらえたらと思います。

grep -rl "ステーキ" templates | grep -P "(\.html|\.css)" | uniq | xargs perl -pi -e "s/ステーキ/寿司/"

上記コマンドを実行するとあら不思議、記事のすべての「ステーキ」が「寿司」に変換されます。

置換で間違った場合に元に戻したい

間違って置換してしまう場合もありますよね。そういう場合は「git reset --hard」を使うことで変更を完全に元の状態に戻すことができます。

git reset --hard

詳しく知りたい場合は、gitコマンドについて検索してみてください。

検索・置換・元に戻すが簡単にできる

GiblogとLinuxコマンドとPerlとGitを使うと、検索・置換・元に戻すが非常に簡単にできます。