ロトサマリー
a branch of the LOTO SUMMARY website

コマンドユーザーズガイド

sjisutf8


MS932~UTF-8.binというバイナリファイルにしたがって、sjisutf8コマンドは、シフトJISのテキストファイルをUTF-8のテキストファイルに変換します。

Windowsのコマンドプロンプトは、シフトJISが多用されます。MS932は、いわゆるシフトJISですが、規格外です。たとえば、丸付きの数字(①②③⑩⑳)、ローマ数字(ⅠⅡⅢⅣⅩ)がMS932に含まれています。sjisutf8コマンドのパラメータとして、シフトJISのファイルを指定してください。sjisutf8コマンドは、シフトJISのファイルを読み込んで、sjisutf8.txtというUTF-8のファイルを書き出します。

パラメータ ほぼ同等な入力 ファイル 説明
-b UTF-8のテキスト 一時ファイルとして、binary.tmpを作成する。
-L -LF UTF-8のテキスト 0Ahのみで改行する。
-L- -CRLF UTF-8のテキスト 0Dhおよび0Ahで改行する。
-t テキストファイル シフトJISのテキストもUTF-8のテキストも同じ日時を有する。

シフトJISのファイル、UTF-8のファイルがこの順に指定された場合、sjisutf8コマンドは、シフトJISのファイルから行を読み込んで、UTF-8のファイルに行を書き出します。シフトJISのファイルがUTF-8のファイルで上書きされるように命令するには、sjisutf8コマンドのパラメータとして、-bを付加してください。一時ファイルとして、binary.tmpが作成されます。さらに、2個目のファイル名を1個目のファイル名と同じにしてください。binary.tmpが改名されます。図24を参照してください。

sjisutf8 -b name name

テキストファイルに関して、Windowsでは、0Dhおよび0Ahで改行しますが、UNIXでは、0Ahのみで改行します。sjisutf8コマンドは、各行から0Dhを削除します。変換表の名前は、MS932~UTF-8.binです。sjisutf8コマンドの特徴として、実行ファイル(Sjisutf8.exe)の外部から変換表を読み込むことができます。実行ファイルは、自分がインストールされたディレクトリに存在している変換表を読み込みます。

ファイルの日時

UTF-8のファイルと、シフトJISのファイルが同じ更新日時(修正時刻)を有するように命令するには、sjisutf8コマンドのパラメータとして、-tを付加してください。図25を参照してください。

sjisutf8 -t readme.txt readme_utf-8.txt

標準入力

ファイル名が指定されていない場合、sjisutf8コマンドは、標準入力から読み込もうとします。このモードでは、0Dhおよび0Ahで改行して、標準出力に書き出します。このモードから脱出するには、Ctrlを押しながらZを押してください。^Zが表示されます。さらに、Enterを押してください。sjisutf8コマンドで半角カタカナが3バイトになった例を図26に示します。ECHOおよびsjisutf8のパイプを構成して、katakana_utf-8.txtにリダイレクトしました。

変換表を探索する順序

  1. コマンドがインストールされたディレクトリ
  2. カレントディレクトリ
  3. 環境変数(Path)に記載の各ディレクトリ
  4. 利用者がset8.txtに記入したパス名
図24. -bが付加されたsjisutf8コマンドで上書きされた 図25. -tが付加されたsjisutf8コマンドで同じ日時になった 図26. sjisutf8コマンドで半角カタカナが3バイトになった
図27. UNIXのodコマンドで、十六進数を表示した 図28. UNIXのiconvコマンドでテキストファイルをCP932からUTF-8に変換した 図29. rufeolコマンドでWindowsのテキストから0Dhを削除した
×

obot


obotコマンドは、ファイルの開始部分を2桁の十六進数で表現します。

十六進数でファイルを表示する有名なコマンドとしては、od, TDUMPがあります。デバッガ、バイナリエディタは、バイナリファイルの閲覧および編集が可能です。MIFESは、テキストエディタですが、バイナリ表示が可能です。

読み込む量を制限するパラメータ

ファイルを読み込むバッファーのサイズを設定するには、obotコマンドのパラメータとして、-bバイト数を付加してください。テキストファイルもバイナリファイルとして処理されます。テキストファイルから読み込む行数を設定するには、obotコマンドのパラメータとして、-m行数を付加してください。何も指定されていない場合、-b640 -m3が指定されたとみなします。図26を参照してください。

書き出す量を制限するパラメータ

obotコマンドがCSVを書き出すように命令するには、-s,(マイナスエスコンマ)を付加してください。書き出す表の欄数(表の列数)を設定するには、obotコマンドのパラメータとして、-c欄数を付加してください。表の行数を制限するには、obotコマンドのパラメータとして、-r行数を付加してください。何も指定されていない場合、obotコマンドは、区切り文字として空白を使用しますし、-c20 -r2147483647が指定されたとみなします。

パラメータ ほぼ同等な入力 説明
-b2048 2048バイトを読み込む。
-c10 表の各行には、10欄ある。10列の表になる。
-m5 テキストファイルから5行を読み込む。
-r20 表の行数は、20行を超えない。
-s, -s¥x2C 区切り文字として、コンマを使用する。

od


odコマンドは、ファイルの内容を十六進数で表現できます。

odコマンドを実行するには、UNIXのodが含まれるソフトウェアが必要です。MinGWかCygwinかGNU Win32のいずれかをWindowsパソコンにインストールしてください。cat, head, odは、GNUのコアなユーティリティに含まれています。Windowsで利用するために、Coreutils Win32をインターネットで検索してダウンロードできます。インストーラーの例としては、coreutils-5.3.0.exeがあります。

十六進数に設定してください

パラメータとして何も指定されていない場合、odコマンドは、-oが指定されたとみなして、2バイトごとに八進数を表示します。od -tx1で十六進数を表示した例を図27に示します。64ビット版Windows 10のパソコンにMinGWをインストールしたら、32ビット版のbashがインストールされました。Windowsのコマンドプロンプトではなく、MinGWのbashからodコマンドを実行しました。

パラメータ ほぼ同等な入力 説明
-t o2 -o 2バイトごとに八進数を表示する。
-t x1 -tx1 1バイトごとに十六進数を表示する。
-t x2 -x 2バイトごとに十六進数を表示する。

iconv


iconvコマンドは、ファイルの文字コードを変更します。

GNU Win32としてiconvコマンドをダウンロードしてインストールすることができます。たとえば、libiconvを検索してください。libは、ライブラリを意味します。WindowsパソコンにMinGWをインストールしたら、iconvコマンドもインストールされる場合があります。

CP932

コマンドプロンプトの文字コードがシフトJISに設定されていることを確認するには、パラメータを付加しないで、コマンドプロンプトにCHCPを入力して、Enterを押してください。932が表示されます。MS932が使用されることがわかります。どのWindowsも最初からCHCPコマンドを用意しています。MS932は、CP932とも言います。iconvコマンドのパラメータとして、Shift_JISではなくCP932を付加した例を図28に示します。

iconv -f CP932 -t UTF-8 marunana.txt > marunana_utf-8.txt

rufeol


rufeolコマンドは、テキストファイルの各行の末尾から不要な文字を除去します。

rufeolコマンドのパラメータが-u1であるならば、0Ahに先行する1バイトを無視します。Windowsのテキストは、0Dhおよび0Ahで改行します。0Dhも数えてください。-u1が指定された場合、rufeolコマンドは、Windowsのテキストから0Dhのみ削除します。図29を参照してください。

パラメータ ファイル 説明
-u1 Windowsのテキスト 0Dhを削除する。
-u2 テキストファイル 0Ahより先行する2バイトを削除する。
  • E-mail: sogaya@usahana.jp