お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-06-19 13:24:45

avidya
ゲスト

nkf の使い方

 なぜか見知らぬ方から、直接メールで nkf の使い方を聞かれたのでここに書いておきます。以下 man
の抜粋です。

DESCRIPTION
       nkf はネットワークでメールやニュースの読み書きをするために作られた、漢
       字コードの変換フィルタである。

       このnkfの特徴としては、入力漢字コード系の統計的な自動認識機能がある。こ
       のため、利用者は、入力漢字コード系が何であるかを知らなくても、出力漢字
       コード系のみ指定すれば良いことになる。ただ、この判定機構は、理論的には
       完全ではないが、通常のニュースやメールのメッセージについては確実に動作
       する安全なものにはなっている。

       現在、nkfが認識できる入力の漢字コード系は、いわゆる JIS コード
       (ISO-2022-JP に基づくもの)、Shift_JIS (MS 漢字コード)、日本語 EUC (AT&T
       コード)、UTF-8、UTF-16 のいずれかである。出力する漢字コード系も、これら
       である。入力は、ファイルを指定しなければ、標準入力となる。出力は標準出
       力である。

OPTIONS
       指定できるオプションは、以下の通り。 -mu のように続けることができる。

       -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 無し)

       -m[BQSN0]
           MIME を解読する。(デフォルト) ISO-2022-JP (B encode) と ISO-8859-1
           (Q encode) のみを解読する。 ISO-8859-1 (Latin-1) を解読する時は、-l
           フラグも必要である。 -m0 では MIME を解読しない。 -mB, -mQ では
           、BASE64, Q encode されているものとして処理する。

           -mB MIME base64 stream を解読する。ヘッダなどは取り除くこと。

           -mQ MIME quoted stream を解読する。

           -mS MIME のチェックを厳しくする (デフォルト)

           -mN MIME のチェックを緩くする

           -m0 MIME を解読しない。

           -mS は、宣言の内容と、その後に続く encoded-text の整合性をチェック
           する。 -mN は、改行で切られた MIME なども解読する。解読が止まらない
           こともある。

       -M[BQ]
           MIME に変換する。 JIS にコード変換してから BASE64 される。

           -M  ヘッダ形式に変換する

           -MB base64 stream に変換する

           -MQ Quoted stream に変換する

       -J -E -S -W
           期待される入力コードの性質を指定する。

           -J  ISO-2022-JP を仮定する。

           -E  日本語 EUC (AT&T) を仮定する。

           -S  Shift_JIS を仮定する。いわゆる半角カナ (JIS X 0201 片仮名) も受
               け入れる。

           -W  UTF-8 を仮定する。

           -W8 UTF-8 を仮定する。

           -W16
               UTF-16 (Little Endien)を仮定する。

           -W16B
               UTF-16 (Big Endien)を仮定する。

           -W16L
               UTF-16 (Little Endien)を仮定する。

       -x  通常おこなわれる、いわゆる半角カナ (JIS X 0201 片仮名) からいわゆる
           全角カナ (JIS X 0208 片仮名) への変換を行わず、半角カナを保存する。
           入力は、Shift_JIS の 1byte カナ、SO/SI、ESC-(-I, SSO を受け付ける。
           出力は、日本語 EUC 中では SSO、JIS コード中では ESC-(-I をデフォル
           トで用いる。

       -X  いわゆる半角カナ (JIS X 0201 片仮名) を いわゆる全角カナ (JIS X
           0208 片仮名) へと変換する。

       -B  壊れた (Broken) JIS コード。 ESC がなくなったと仮定する。

           -B1 ESC-(, ESC-$ のあとのコードを問わない

           -B2 改行のあとに強制的に ASCII に戻す

       -f[m[-n]]
           一行 m 文字になるように、マージンを n として簡単な整形をおこなう。
           デフォルトは文字数は 60、マージンは 10 である。

       -Z[0-3]
           JIS X 0208 英数字と若干の記号を ASCII に変換する。つまり、全角を半
           角に変換する。

           -Z -Z0
               Convert X0208 alphabet to ASCII.

           -Z1 JIS X 0208 和字間隔を ASCII space 一つに変換する。

           -Z2 JIS X 0208 和字間隔を ASCII space 二つに変換する。

           -Z3 >、<、、&、を >、<、"、& に変換する。

       -b  バッファリング出力を行う。(デフォルト)

       -u  出力時に、バッファリングしない。 ssh localhost │ nkf -u というよう
           に使う。

       -t  何もしない。

       -I  ISO-2022-JP 以外の漢字コードを〓に変換。

       -i[@B]
           JIS 漢字を指示するシーケンスを指定する。 (デフォルトは、ESC-$-B)

       -o[BJH]
           1 バイト英数文字セットを指示するシーケンスを指定する。 (デフォルト
           は、ESC-(-B)

       -r  ROT13/47 の変換をする。

       -g  自動判別の結果を出力します。

       -v  バージョンを表示する。

       -T  テキストモードで出力する。(MS-DOS 上でのみ効力を持つ)

       -l  0x80-0xfe のコードを ISO-8859-1 (Latin-1) として扱う。 JIS コードア
           ウトプットとの組合せみのみ有効。 -s, -e, -x とは両立しない。

       -O  ファイルに出力する。 UNIX では不要な機能だが Windows や MSDOS では
           必要らしい。直後の引き数でなく、最後のファイル名が出力ファイル名と
           なり上書きされてしまうので注意。ファイル名がない場合は nkf.out。

       -L[uwm] -d -c
           改行コードを変換する。

           -Lu -d
               unix (LF)

           -Lw -c
               windows (CRLF)

           -Lm mac (CR)

           デフォルトでは変換しない。

       --ic=<input_codeset --oc=<output_codeset>>
           入力・出力の漢字コード系を指定します。

           ISO-2022-JP
               いわゆる JIS コード。-j, -J と同じ。

           ISO-2022-JP-1
               RFC 2237 に定められた形式。 JIS X 0212 を含む。

           ISO-2022-JP-3
               RFC 2237 に定められた形式。 JIS X 0213 を含む。

           EUC-JP
               EUC コード。-e, -E と同じ。

           EUC-JISX0213
               文字集合に JIS X 0213:2000 を用いた EUC-JP。

           EUC-JIS-2004
               文字集合に JIS X 0213:2004 を用いた EUC-JP。

           eucJP-ascii
               オープングループ日本ベンダ協議会が定義した eucJP-ascii。 -x が
               暗黙のうちに指定される。

           eucJP-ms
               オープングループ日本ベンダ協議会が定義した euc-JPms。 -x が暗黙
               のうちに指定される。

           CP51932
               Micorosft Code Page 51932。 -x が暗黙のうちに指定される。

           Shift_JIS
               Shift_JIS。 -s, -S と同じ。

           Shift_JISX0213
               文字集合に JIS X 0213:2000 を用いた Shift_JIS。

           Shift_JIS-2004
               文字集合に JIS X 0213:2004 を用いた Shift_JIS。

           CP932
               Micorosft Code Page 932。 -x が暗黙のうちに指定される。

           UTF-8 UTF-8N
               BOM 無しの UTF-8。 -w, -W と同じ。

           UTF-8-BOM
               BOM 付きの UTF-8。-w8 または -W と同じ。

           UTF8-MAC
               UTF8-MAC。互換分解されたひらがな・カタカナ等を結合します。

           UTF-16 UTF-16BE-BOM
               BOM 有りで Big Endian の UTF-16。 -w16B, -W16B と同じ。

           UTF-16BE
               BOM 無しで Big Endian の UTF-16。 -w16B0. -W16B と同じ。

           UTF-16LE-BOM
               BOM 有りで Little Endian の UTF-16。 -w16L, -W16L と同じ。

           UTF-16LE
               BOM 無しで Little Endian の UTF-16。 -w16L0, -W16L と同じ。

       --fj --unix --mac --msdos  --windows
           これらのシステムに適した変換をします。

       --jis --euc --sjis --mime --base64
           対応する変換をします。

       --hirakana --katakana
           平仮名、片仮名変換

       --fb-{skip, html, xml, perl, java, subchar}
           Unicode から Shift_JIS, EUC-JP, ISO-2022-JP に変換する際に、変換で
           きなかった文字をどう扱うかを指定できます。

       --prefix=escape charactertarget character..
           EUC-JP から Shift_JIS への変換の際、2 バイト目に現れた文字の前にエ
           スケープ文字をつけることができます。引数の 1 文字目がエスケープ文字
           、2 文字目以降にエスケープされるべき文字を指定します。

           例えば、

           --prefix=\$@ とすると、Shift_JIS の 2 文字目に $ か @ が来たら、そ
           の前に \ が挿入されます --prefix=@@ とすると、Shift_JIS の 2 文字目
           に @ が来たら、その前に @ が挿入されます

       --no-cp932ext
           CP932 において拡張された、NEC 特殊文字、NEC 選定 IBM 拡張文字
           (89-92 区)、IBM 拡張文字を変換しません。

       --no-best-fit-chars
           Unicode からの変換の際に、往復安全性が確保されない文字の変換を行い
           ません。 Unicode から Unicode の変換の際に -x と共に指定すると、nkf
           を UTF 形式の変換に用いることができます。 (逆に言えば、これを指定し
           ないと一部の文字が保存されません)

           パスに関わる文字列を変換する際には、このオプションを指定することを
           強く推奨します。

       --cap-input, --url-input
           それぞれ :、% に続く 16 進数を文字に変換する

       --numchar-input
           &#....; のような Unicode 文字参照を変換する

       --in-place[=SUFFIX]  --overwrite[=SUFFIX] 元のファイルを変換結果で置き
       換える。 複数のファイルを書き換えることも可能。 元のファイルのタイムス
       タンプとパーミッションが保持される。 現在、作成日時や inode は変更され
       るが、将来にわたってこの実装のままである保証は無い。
       --guess
           自動判別の結果を出力する

       --help
           コマンドの簡単な説明を表示する。

       --version
           nkf のバージョンを表示する。

       --  これ以降のオプションを無視する

       --exec-in nkf [options] --exec-in cmd args... とやると、cmd の出力を
       nkf の入力とする (config.h で EXEC_IO を define してコンパイルした時の
       み有効)
       --exec-out
           nkf [options] --exec-out cmd args... とやると、nkf の出力を cmd の
           入力とする (config.h で EXEC_IO を define してコンパイルした時のみ
           有効)

# man command
# command -help
# command --help
# command -?
# etc
# ほとんどのコマンドは上記の方法で使い方が表示されます。
# 覚えておくと便利ですよ。

 

Board footer

Powered by FluxBB