【pc】Linux便利そうなコマンドとか

開発ざれごとfind,linux,nkf,perl,xargs,一括変換

もちろんネットからの拾い物ですが、ウェブサイトの移行の時、とっても役に立っているコマンドです。

find . -name '*.htm’|xargs nkf –overwrite -w

カレントディレクトリのHTMLファイルをまとめて、UTFにエンコードし上書きします。

-nameの中のパターンを変更すれば、そのファイルを対象としますので、一度、findコマンドだけで実行して、対象ファイルを見ておいた方がいいですね。

nkfは漢字コード変換コマンドです。最後の-wは、ユニコード(UTF8)の意味です。以下は、manの抜粋です。

-j  JIS コードを出力する。(デフォルト)
-e  EUC コードを出力する。
-s  Shift_JIS コードを出力する。
-w -w8[0] -w16[BL][0]
    Unicode を出力する。
    -w -w80
        UTF8 コードを出力する。 (BOM 無し)
    -w8 UTF8 コードを出力する。
    -w16 -w16B0
        UTF16 コードを出力する。 (Big Endian / BOM 無し)
    -w16B
        UTF16 コードを出力する。 (Big Endian / BOM 有り)
    -w16L
        UTF16 コードを出力する。 (Little Endian / BOM 有り)
    -w16L0
        UTF16 コードを出力する。 (Little Endian / BOM 無し)

あと役立ったのが、このファイルの一括置換です。

perl -p -i.bak -e 's/charset=Shift_JIS/charset=UTF-8/g’ *.html

上記のコマンドで、エンコードを変更したら、HTMLメタタグの変更が必要になったりします。これは、charsetに続く文字コードの置換(s/ / /)を行っています。

Perl正規表現で、”Shift_JIS”から”UTF-8”へ。

-eでPerlを直接起動してます。-iでバックアップファイルを生成してるので、確認後は、まとめてBAKファイルを削除しちゃえばOKです。

開発ざれごとfind,linux,nkf,perl,xargs,一括変換

Posted by nabe