• ベストアンサー

nkf -wのオプションの意味は何なのでしょうか?

nkf -wのオプションの意味は何なのでしょうか? -Lw(Windowsの改行コードに変換する)なら見つかりましたが・・・ あとnkfでハマル(注意すべき)点など、経験者の方教えてください。 nkfコマンドを使わずにnkfでできること全てをperlで行うことは可能でしょうか?

  • bazax
  • お礼率5% (12/228)

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

nkf -v とすると簡単な説明がでます。 $ nkf -v USAGE: nkf(nkf32,wnkf,nkf2) -[flags] [in file] .. [out file for -O flag] Flags: b,u Output is buffered (DEFAULT),Output is unbuffered j,s,e,w Outout code is JIS 7 bit (DEFAULT), Shift JIS, AT&T JIS (EUC), UTF-8 After 'w' you can add more options. (80?|16((B|L)0?)?) J,S,E,W Input assumption is JIS 7 bit , Shift JIS, AT&T JIS (EUC), UTF-8 After 'W' you can add more options. (8|16(B|L)?) 小文字の wを使っての指定は、変換後の文字列のエンコーディングをUTF-8にする。というものです。 wの後ろにさらに情報をつけるとUTF-16等の指定もできます。 > nkfコマンドを使わずにnkfでできること全てをperlで行うことは可能でしょうか? 基本的には可能です。 ただしこまかいところでの挙動の違いがありますので完全に置き換えられるかどうかは 保証できません。 (たとえばShiftJISでWindows固有の文字をどう扱うかとか)

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.3

>あとnkfでハマル(注意すべき)点など、経験者の方教えてください。 デフォルトが、-mB Mimeデコードなので、入力データに =?ISO-2022-JP?B? などの文字列が含まれていると変換されちゃいます。それを意図的にやるのでない限り -m0 をつけましょう。 あと、バージョンでかなり機能が違うので、初めての環境では使う前には nkf -v で機能を確認。

  • adkori
  • ベストアンサー率31% (221/705)
回答No.2

nkfに限らず、Linuxのコマンドは $ man hogehoge でhogehogeコマンドのマニュアルが表示されます。 是非お使いください。 >nkfコマンドを使わずにnkfでできること全てをperlで行うことは可能でしょうか? おそらく可能ですが、場合によってはかなり大変でしょうね。

関連するQ&A

  • 文字コード変換の件( nkf -w8 と iconv )

    nkfでのオプション:w8に該当するiconvのパラメータをご存知のかたは教えていただきたいと思います。 nkf -w8での変換結果はファイル先頭3バイトにiconvでの変換結果と異なるコードが付いているようです。 iconvにて次のパラメータは試しましたが、いずれもファイル先頭3バイトが nkf -w8の結果とは異なっています。 UTF-8 UTF-16 UTF-16BE UTF-16LE UNICODE なお、versionなどは関係ないとは思いますがfedora-10-preview環境です。

  • Linux nkfコマンド使用方法

    最近、nkfコマンドを知りました。 nkf -w8 --overwrite test.php nkf -g test.php >>UTF-8 上記は、意図したとおりに変換されますが、 -jesなどの他の文字コード変換ができません。 なぜでしょうか。 バージョン2.1.2 ご回答をよろしくお願いします。

  • Solarisでnkfコマンドを使いたい

    皆さんこんにちは。 よろしくお願いいたします。 solaris10(01/06) x86を使っています。 質問させていただきます。 LINUXにある、文字コード変換コマンド、"nkf"。 solarisには存在しないのですか? 又、似たようなコマンドがあれば、お教えていただきたく思います。 以上、よろしくお願いいたします。

  • UNIX上で文字コードの一括変換はできますか?

    UNIX上で、文字コードを変換したいのですが、今まではSJISからEUCといった変換にnkfを使用してきましたが、nkfだと1ファイル毎でしか文字コードを変換できませんでした。1行のコマンドでそのディレクトリ内の全てのファイルの文字コードを変換してくれるコマンドはありますでしょうか? UNIX上で実現できれば、Perlでもなんでも結構です。よろしくお願いします。

  • 【unix】nkfで文字コードを変えずに改行コードを変えたい

    unix(BSD)初心者です。 PHP経由でunixを操作、ファイルの加工をしております。 nkfコマンドにてLF改行をCR+LF改行にしたいのですが、 ・文字コードは無変化で改行コードだけ変える などということはできるのでしょうか? いろいろな文字コードのファイルが混在している場合に文字コードはそのまま保ちつつ改行コードはCR+LFに統一したいのです。 お詳しい方よろしくお願いします。

  • 文字コードの変換方法

    お世話になります。 サーバ上で生成した、文字コードがEUCのテキストファイルをSJISに文字コードを変換したいのですが、nkfコマンドが使用できません。 nkfコマンドを使用せず、EUC⇒SJISへ文字コードを変換する方法をご教示頂けますでしょうか。 また文字コードを変更すれば改行コードの変更はしなくてもいいのでしょうか。 宜しくお願い致します。

  • nkfで全角ハイフンが半角になる(cygwin)

    http://sourceforge.jp/projects/nkf/ でダウンロードしたものをcygwinでmakeしたものを使っています。 nkf -w8 -W16L -x hoge.txt > moge.txt nkf -w16L -W8 -x moge.txt > hoge2.txt とすると、全角ハイフンが半角になってしまいます。 UTF-16LE→UTF-8→UTF-16LEで可逆変換できるようなオプションはどのように指定すれば良いですか? またはそれが可能な別のコマンドラインツールはありますか? (Windowsまたはcygwinで動作可能な) UTF-16で出力されるWindows RegistoryファイルをsvnにUTF-8で保存してバックアップしたいです。 UTF-16はsvnにバイナリ扱されるし、圧縮されるとはいえほとんどがASCIIのレジストリファイルでは無駄が多いので、UTF-8で保存しようと思いました。 具体的には以下のようなバッチファイルを起動時や定期的に実行します。 regedit.exe /e hoge.reg HKEY_CURRENT_USER\hoge nkf -w8 -W16L -x hoge.reg > hoge.txt svn.exe add hoge.txt svn.exe ci -m "" hoge.txt (パスは省略してあります) Windowsでの運用なのですが、nkfなのでLinuxのカテゴリに投稿させていただきました。

  • 文字コード変換、改行コード変換をn件ずつ実効

    UNIX初心者です。 指定ファルダにあるファイルについて 文字コード変換、改行コード変換を一括で行ないたいです。 しかし、以下のコマンドではファイル数が多すぎて、一括変換が出来ません。 find . -type f -print0 | xargs -0 nkf --overwrite -s --windows いい方法ありましたら、ご教示いただきたいです。 よろしく御願いします。 (具体例をだしていただけると助かります)

  • nkfのバッチファイル

    親ディレクトリ以下のすべてのテキストファイルの文字コードをutf-8に変えようと思い、以下の内容のバッチファイルを作りました(nkf32.exeはバッチファイルと同ディレクトリに置いています)。Cドライブ(デスクトップ)上で実行したところ、問題なく動いたのですが、USBメモリ(Dドライブ)に置いて実行するとうまく動きません。ご教示お願いします。 >test.bat for /R .. %%i in (*.txt) do ( nkf32.exe -w8 --overwrite %%i )

  • man nkfの文字化け

    Cygwinでman nkfすると文字化けするので、直し方を教えて下さい。 最新のnkf-2.1.4.tar.gzを使っています: $ man nkf nkf(1) NAME nkf - $B%M%C%H%o!<%/MQ4A;z%3!<%IJQ49%U%#%k%?(B SYNOPSIS nkf [-butjnesliohrTVvwWJESZxXFfmMBOcdILg] [file ...] DESCRIPTION nkf $B$O%M%C%H%o!<%/$G%a!<%k$d%K%e!<%9$NFI$_=q$-$r$9$k$?$a$K:n$i$l$?!"4A;z%3!<%I$NJQ49%U%#%k%?$G$"$k!#(B http://qiita.com/Takeru/items/1694653253a9bf038b47を参考にnkf.1jを変換してみました: 変換前: $ cat nkf.1j | grep -A7 ".SH \"NAME\"" .SH "NAME" nkf \- %M%C%H%o!<%/MQ4A;z%3!<%IJQ49%U%#%k%? .SH "SYNOPSIS" .IX Header "SYNOPSIS" nkf \fB[\-butjnesliohrTVvwWJESZxXFfmMBOcdILg]\fR \fB[\fR\fIfile ...\fR\fB]\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBnkf\fR $O%M%C%H%o!<%/$G%a!<%k$d%K%e!<%9$NFI$_=q$-$r$9$k$?$a$K:n$i$l$?!"4A;z%3!<%I$NJQ49%U%#%k%?$G$"$k!# 変換後: $ cat nkf.1j | nkf -w8 | grep -A7 ".SH \"NAME\"" .SH "NAME" nkf \- ネットワーク用漢字コード変換フィルタ .SH "SYNOPSIS" .IX Header "SYNOPSIS" nkf \fB[\-butjnesliohrTVvwWJESZxXFfmMBOcdILg]\fR \fB[\fR\fIfile ...\fR\fB]\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBnkf\fR はネットワークでメールやニュースの読み書きをするために作られた、漢字コードの変換フィルタである。 ・・・ここまではうまくいってそうですが、 cp -p nkf.1j nkf_Org.1j とバックアップを取って、 cat nkf_Org.1j | nkf -w8 > nkf.1j と上書きしても文字化けしたままです: $ man nkf nkf(1) NAME nkf - $B%M%C%H%o!<%/MQ4A;z%3!<%IJQ49%U%#%k%?(B SYNOPSIS nkf [-butjnesliohrTVvwWJESZxXFfmMBOcdILg] [file ...] DESCRIPTION nkf $B$O%M%C%H%o!<%/$G%a!<%k$d%K%e!<%9$NFI$_=q$-$r$9$k$?$a$K:n$i$l$?!"4A;z%3!<%I$NJQ49%U%#%k%?$G$"$k!#(B (jが付かない)nkf.1は英語用でしょうか? nkf.1に上書きしたり、nkf.1自身を変換したりしましたが、どれも文字化けしたままです。 他に何か試せることはありますか? 他の方はどうされているのでしょうか?