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

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

utf16sjis


surro.csv およびUTF16~MS932.binにしたがって、utf16sjisコマンドは、UTF-16のファイルをシフトJISのテキストファイルに変換します。

UTF-16のサロゲートペアを廃止して、代替文字として、たとえば、下線を使用できます。

珍しい漢字

Windowsのコマンドプロンプトは、シフトJISが多用されます。MS932は、いわゆるシフトJISですが、規格外です。たとえば、丸付きの数字(①②③⑩⑳)、ローマ数字(ⅠⅡⅢⅣⅩ)、1バイトのカタカナは、EUC-JPで表現しにくい。一方、MS932は、名前の漢字が不十分であるため、名前に含まれた珍しい漢字を表現しにくい。

橋の名前

江戸幕府直轄の領地、すなわち天領として倉敷が栄えました。明治時代に、倉敷では、画家の児島虎次郎がエル・グレコ、モネらの芸術品を収集しました。倉敷川にかかる石橋として、今橋、中橋があります。大原美術館は、今橋のたもとにあります。令和元年12月21日、今橋に行って撮影しました。図66を参照してください。

符号位置の上位サロゲートおよび下位サロゲート

この珍しい漢字、上位サロゲート、下位サロゲート、符号位置(コードポイント)は、以下の通りです。図67を参照してください。

文字 上位サロゲート 下位サロゲート 符号位置
𫝆 D86D DF46 2B746

2個のファイル

UTF-16のファイル、シフトJISのファイルがこの順に指定された場合、utf16sjisコマンドは、UTF-16のファイルを読み込んで、シフトJISのファイルを書き出します。

utf16sjis UTF-16.txt Shift_JIS.txt

先に新しいファイルの名前を指定したい

上記のとおり、2個のファイルを指定した場合、2個目のファイルが新しいファイルになりますが、先に新しいファイルの名前を指定するには、utf16sjisコマンドのパラメータとして、-o text.tmpを付加してください。-oおよびtext.tmpの間に空白を挿入してください。text.tmpは、新しいファイルの名前です。

utf16sjis -o text.tmp Gon_UTF-16.txt

標準出力

utf16sjisコマンドは、標準入力から読み込むことができません。標準出力にシフトJISのデータを書き出すには、utf16sjisコマンドのパラメータとして、--outを付加してください。--outは、-o- -zと同じ結果を生じます。27DA0の符号位置にある文字(サロゲートペア)をシフトJISにある文字で代替した例を図68に示します。シフトJISとしてE6CCが2回も出現しています。シフトJISのバイト列は、上位バイトが下位バイトより先に出現します。文意は、無意味になりましたが、この変換結果は、正しい。

パラメータ 新しいファイル 長さ 説明
-o text.tmp text.tmp 8 利用者は、自分で、新しいファイルをtext.tmpと命名した。
-o- utf16sjis.txt 13 利用者は、自分で新しいファイルを命名しない。
-o- -z 空文字 0 utf16sjisコマンドは、ファイルではなく標準出力に変換結果を書き出す。

一時ファイルを作成

まず新しいファイルとして一時ファイルを作成して、次に、一時ファイルを新しい名前に改名するには、utf16sjisコマンドのパラメータとして、-bを付加してください。

一時ファイルを削除しない

utf16sjisコマンドが自動的に一時ファイルを削除しないように命令するには、utf16sjisコマンドのパラメータとして、-b -yを付加してください。

元のファイルの名前

元のファイルの名前で新しいファイルを命名するには、utf16sjisコマンドのパラメータとして、-b 元のファイル名 元のファイル名を付加してください。ただし、元のファイルは、上書きされます。バックアップを目的として、事前に適当なディレクトリに元のファイルのコピーを作成することを推奨します。

ファイルの日時

元のファイルが新しいファイルと同じ日時を有するように命令するには、utf16sjisコマンドのパラメータとして、-tを付加してください。図69を参照してください。

一時ファイルを削除しない

utf16sjisコマンドが自動的に一時ファイルを削除しないように命令するには、utf16sjisコマンドのパラメータとして、-t -yを付加してください。図69を参照してください。

utf16sjis -t -y Gon_UTF-16.txt Gon_Shift_JIS.txt

どの変換表を使用するか

C:¥Utf16sjisにutf16sjis.exeおよびUTF16~MS932.binをインストールしました。通常は、utf16sjisコマンドをインストールしたディレクトリにあるUTF16~MS932.binにアクセスできます。どの変換表を使用するか表示するには、utf16sjisコマンドのパラメータとして、-wを付加してください。このデータは、data.txtに保存されています。図70を参照してください。

変換表を探索する順序

utf16sjisコマンドは、下記の順序で変換表を探索します。

  1. utf16sjisコマンドがインストールされたディレクトリ
  2. カレントディレクトリ
  3. 環境変数Pathに記載の各ディレクトリ
  4. 設定ファイルの第1行に記載のパス名

設定ファイルに記載のパス名を優先

インストールディレクトリ、カレントディレクトリ、Pathに記載の各ディレクトリに変換表があろうがなかろうが、設定ファイルの第1行からパス名を捕捉して、変換表を開くには、utf16sjisコマンドのパラメータとして、-aを付加してください。

surro.csvは探索されない

UTF16~MS932.binと異なり、surro.csvは、utf16sjisコマンドによって探索されません。カレントディレクトリでsurro.csvが発見されない場合、utf16sjisコマンドは、自動的にsurro.csvを作成します。

変換表を生成

UTF16~MS932.binが削除されるおそれがあるなど、バックアップを目的として、事前に適当なディレクトリにUTF16~MS932.binのコピーを作成することを推奨しますが、コマンドプロンプトに入力するとき、何もパラメータが付加されていないutf16sjisコマンドは、MS932~UTF16.binからUTF16~MS932.binを生成できます。カレントディクトリにMS932~UTF16.binを用意してください。図72を参照してください。

図66. 倉敷川にかかる石橋として、今橋があります。珍しい漢字で今橋と刻まれている 図67. Windows 10のパソコンで、Firefoxでsurro.htmlを閲覧して、今の異体字を確認した 図68. --outにより標準出力に書き出すことができる 図69. 元のファイルは、一時ファイルにコピーされており、新しいファイルと同じ日時を有している 図70. data.txtにどの変換表を使用するか記録されている 図71. -aが付加されたutf16sjisコマンドがset_utf16sjis.txtの第1行からパス名を捕捉した 図72. パラメータ無しのutf16sjisコマンドがMS932~UTF16.binからUTF16~MS932.binを生成した 図73. 誤操作でsurroコマンドを実行したため、surro.csvが初期化された 図74. Firefoxでsurro.htmlを閲覧して、サロゲートペアの長大な表を確認した 図75. サクラエディタでsutai.txtの要約部を表示して1Fhで連結されていることを確認した 図76. 小なり記号、大なり記号、縦線、タブ、空白を十六進数で表現して入力できる
図77. usortkコマンドは、利用者がCSVファイルに記入した値に562949953421312.0001を加算した 図78. -iが付加されたusortkコマンドは、制御文字が存在しないかのように比較した 図79. -!が付加されたusortkコマンドは、要約が合致した場合、行番号を画面に書き出した 図80. usortkコマンドに、-f -uを付加した場合、顕著な効果が生じる例 図81. -#が付加されたusortkコマンドは、要約が合致した場合、第1欄に影響されないでIDを比較した 図82. mini_UTF-16.txtの第2欄から09h, 0Ch, 1Bhを削除した 図83. Gon_Shift_JIS.txtは、内容もサイズもGongitsune.txtに一致した
×

usortk


usortkコマンドは、UTF-16ファイルの行を昇順または降順に並べ替えます。新しいUTF-16ファイルを作成できます。

利用者は、欄を選択できます。usortkコマンドは、利用者選択の欄から要約を作成して、要約および詳細のブロックを作成して、要約を比較しながらブロックを並べ替えて、詳細のみ書き出します。

区切り文字

CSVの行を並べ替えるには、コマンドプロンプトにusortkコマンドのパラメータとして、-t,(マイナスティーコンマ)を付加してください。-tおよびコンマの間に空白を挿入しないでください。

拡張子

usortkコマンドは、ファイル名に.csvが含まれている場合、区切り文字としてコンマを使用します。この場合、区切り文字が指定されたとみなします。

空白

区切り文字が指定されていない場合、usortkコマンドは、区切り文字として空白を使用します。

新しいファイル

新しいファイルの作成および命名を行うには、コマンドプロンプトにusortkコマンドのパラメータとして、-o text.tmpを付加してください。-oおよびtext.tmpの間に空白を挿入してください。text.tmpは、新しいファイルの名前です。 text.tmpは、UTF-16のファイルです。

文字化けのおそれ

文字化けが発生するおそれがある場合、パイプもリダイレクトも回避してください。コマンドプロンプトは、UTF-16ではなくMS932が多用されます。コマンドプロンプトがサポートしない文字がUTF-16のファイルに含まれているかもしれません。この場合、usortkコマンドの結果を標準出力に書き出さないで、-o text.tmpにより一時ファイルに保存してください。

欄の数を設定

第1欄から数えて5欄を選択するには、usortkコマンドのパラメータとして、-a5を付加してください。-a5は、-k1,5と同等な結果を生じます。

欄の数の上限

-a5が付加されていない場合、usortkコマンドは、-a255が付加されたとみなします。欄数の上限は、255欄です。

上限を変更

255から3071に欄数の上限を変更するには、usortkコマンドのパラメータとして、-Zを付加してください。

同等なパラメータ

第2欄のみ選択するには、usortkコマンドのパラメータとして、-j2を付加してください。-j2は、-k2,2と同等な結果を生じます。

パラメータ ほぼ同等な入力 説明
-$ どの行も同じ欄数を有しているか点検する。
-a4 -h1111000000 第1欄から第4欄まで選択する。
-k1,4
-h1011 第2欄を除外する。
-j2 -k2,2 第2欄のみ選択する。
-k2 第2欄から最終欄まで選択する。
-k2,3 -a3 -h011 第2欄から第3欄まで選択する。
-t, .csvの拡張子 区切り文字としてコンマを使用する。
-T¥x2C
-x- .csvがファイル名に含まれるか点検しない。
-Z 255から3071に欄数の上限を変更する。

語句の連結

利用者は、多数の欄を選択できます。利用者選択の欄で要約を構成するとき、語句を連結する文字として、1Fhが使用されます。usortkコマンドの語句連結文字(1Fh)は、usortkの内部で要約に使用されますが、詳細として書き出されません。

十六進数で語句連結文字を設定

二桁の十六進数で語句連結文字を設定できます。選択された語句をたとえば、改ページ(0Ch)で連結するには、usortkコマンドのパラメータとして、-V¥x0Cを付加してください。-V¥x0Cが付加されていない場合、usortkコマンドは、1Fhで連結します。

一時ファイルの要約部および詳細部

usortkコマンドは、一時ファイルとして、sutai.txtを作成します。sutai.txtは、UTF-16のファイルです。第1欄から数えて5欄を選択して、第2欄を除外するには、usortkコマンドのパラメータとして、-a5 -h10111を付加してください。サクラエディタでsutai.txtの要約部を表示した例を図75に示します。1Fhで連結されています。

十六進数で区切り文字を設定

コンマの十六進数は、2Chです。-t,ではなく-T¥x2Cが指定されても、usortkコマンドは、区切り文字としてコンマを使用します。-T¥x09ならタブを使用します。

¥tはタブを意味する

-T¥tは、-T¥x09と同じ結果を生じます。小なり記号、大なり記号、縦線は、コマンドプロンプトに入力しにくい。Wikiの表として、パラメータの例を図76に示します。

欄から浮動小数点数を抽出

語句ではなく浮動小数点数を比較して、ファイルの行を並べ替えるには、usortkコマンドのパラメータとして、-gを付加してください。

小数第4位まで

usortkコマンドは、浮動小数点数を読み込むことができますが、sutai.txtに固定小数点数を書き出します。利用者がCSVファイルに記入した浮動小数点数の小数第4位まで有効になります。

空白も文字も無視される

-gが付加されたusortkコマンドは、まず小数点を発見します。次に、先頭の数字を探索して、その位置を取得します。負号があれば、その位置を取得します。さらに、欄から浮動小数点数のみ抽出します。すなわち、欄の前半にある空白も文字も無視されます。

基準

負の数をサポートするために、usortkコマンドは、利用者がCSVファイルに記入した値に562949953421312.0001を加算します。すなわち、usortkの内部で基準を変更します。図77に示したとおり、usortkの内部に格納された数値は、sutai.txtに書き出されます。

欄から整数を抽出

語句ではなく整数を比較して、ファイルの行を並べ替えるには、usortkコマンドのパラメータとして、-nを付加してください。

固定小数点数が書き出される

-nが付加されたusortkコマンドは、まず、欄から整数を抽出して、次に、整数に固定小数点数(562949953421312.0001)を加算します。すなわち、usortkの内部で基準を変更します。usortkの内部に格納された固定小数点数は、sutai.txtに書き出されます。

基準を変更

562949953421312.0001ではない固定小数点数を設定して基準を変更するには、usortkコマンドのパラメータとして、-R整数を付加してください。たとえば、-R9が付加された場合、usortkコマンドは、利用者がCSVファイルに記入した値に9.0001を加算します。-R0が付加された場合、usortkコマンドは、利用者がCSVファイルに記入した値に0.0001を加算します。

制御文字を書き出す

-iが付加されたusortkコマンドは、制御文字を削除しません。-iが付加されていない場合、09h, 0Ch, 1Bhなどの制御文字も数字と比較されますが、-iが付加された場合、制御文字が存在しないかのように数字どうしが比較されます。-iがusortkコマンドに付加されたかどうかで結果が異なることを図78に示します。

合致したら拒否

他の行と要約が合致した場合、行の登録を拒否するには、usortkコマンドのパラメータとして、-uを付加してください。ある要約に多数の行が対応するにもかかわらず、各要約に対応する1行のみ書き出します。

合致を記憶

他の行と要約が合致した場合、usortkコマンドは、その行番号を記憶します。記憶した行番号を書き出すには、さらに-!を付加してください。コマンドプロンプトの画面に表示されます。図79を参照してください。

要約にIDを付与する

要約どうしが合致した場合も順序を確定するために、要約にIDを付与するには、usortkコマンドのパラメータとして、-#を付加してください。IDが要約に付与されても、usortkコマンドは、要約ではなく詳細を書き出します。

大文字と小文字を区別しない

大文字と小文字を区別しないで語句を比較するには、usortkコマンドのパラメータとして、-fを付加してください。

顕著な効果

usortkコマンドに、-f -uを付加した場合、顕著な効果が生じる例を図80に示します。

IDを優先

要約が合致した場合、第1欄に影響されないでIDを比較するには、usortkコマンドに、-#を付加してください。-#が付加されたかどうかで結果が異なる例を図81に示します。

sjisutf16


sjisutf16コマンドは、MS932~UTF16.binにしたがって、シフトJISのテキストファイルをUTF-16のファイルに変換します。

まずsjisutf16コマンドでシフトJISのテキストファイルであるGongitsune.txtをBOM付きUTF-16ファイルに変換して、次にutf16sjisコマンドでUTF-16ファイルをシフトJISテキストファイルに変換しました。結果のファイルをGon_Shift_JIS.txtと命名しました。Gon_Shift_JIS.txtは、内容がGongitsune.txtに一致しました。サイズも同一でした。図83を参照してください。

unarfi


unarfiコマンドは、UTF-16ファイルの多数の欄から細長いUTF-16ファイルを作成します。

利用者は、欄を選択できます。unarfiコマンドは、利用者選択の欄をある程度まで編集できます。たとえば、欄から浮動小数点数を抽出できます。欄から整数を抽出できます。欄から制御文字を削除できます。欄から濁点、半濁点を削除できます。欄の半角カタカナをASCII(アスキー[英字、数字、記号])に置換できます。

第3欄から第5欄まで選択

第3欄から第5欄までを選択するには、unarfiコマンドのパラメータとして、-i3-5を付加してください。

第5欄のみ選択

第1欄から数えて5欄を選択するのではなく、第5欄のみ選択するには、unarfiコマンドのパラメータとして、-j5を付加してください。-j5は、-i5-5と同じ結果を生じます。

パラメータ ほぼ同等な入力 説明
-i3-5 -c5 -b00111 第3欄から第5欄まで選択した。
-c5 -B11000
-c5 -i1-5 第1欄から第5欄まで選択した。
-j5 -c5 -b00001 第5欄のみ選択した。
-c5 -B11110
-i5-5

制御文字を削除

利用者は、多数の欄を指定できますが、さらに、ある欄を指定できます。多数の欄のうち、ある欄から制御文字を削除できます。たとえば、第1欄から数えて2欄を選択して、2欄のうち第2欄から制御文字を削除するには、unarfiコマンドのパラメータとして、-c2 -o2を付加してください。

09h, 0Ch, 1Bhを削除

mini_UTF-16.txtの第2欄から09h, 0Ch, 1Bhを削除した例を図82に示します。

パラメータ ほぼ同等な入力 説明
-0 0Dhおよび0Ahで改行する。
-d2 第2欄から濁点、半濁点を削除する。
-e2 第2欄から浮動小数点数を抽出する。
-f どの行も同じ欄数を有しているか点検する。
-F new 新しいファイルの作成および命名を行う。
-k2 -a_ 第2欄で半角カタカナを下線に置換する。
-LF -0- -L 0Ahのみで改行する。
-o2 第2欄から制御文字を削除する。
-p ASCIIのHおよびIを第2欄から削除する。
-q 引用符で囲まれているコンマを削除する。
-r 逆順に欄を並べ替える。
-s, .csvの拡張子 区切り文字としてコンマを使用する。
-S¥x2C
-S¥l -S¥x7C 区切り文字として縦線を使用する。
-V バージョン番号を表示する。
-w~ -W¥x7E 引用符として~を使用する。
-x- ファイル名に.csvが含まれているか点検しない。
-z2 第5欄で、最長欄の行番号および長さを記録する。
-Z 255から3071に欄数の上限を変更する。
-G -VC 用例および短い説明を表示する。
--help

surro


surroコマンドは、surro.csvを作成します。surro.csvは、BOM付きのUTF-16ファイルです。

utf16sjisコマンドは、surro.csvおよびUTF-16~MS932.binにしたがって、UTF-16のファイルをシフトJISのテキストファイルに変換します。下線( _ )は、シフトJISの2バイト文字に含まれています。テキストにサロゲートペアが出現した場合、utf16sjisコマンドは、サロゲートペアをたとえば下線に置換しますが、利用者は、シフトJISの2バイト文字から新しい代替文字を選択できます。

手順

surro.txtは、シフトJISのテキストファイルです。

  1. 2000B, 20089, 200A2など十六進数でサロゲートペアの符号位置(コードポイント)を表現してください。
  2. surro.txtの各行に1個の十六進数を記入してください。
  3. surroコマンドで、surro.csvを作成してください。
  4. surro.csvの各行に新しい代替文字を記入してください。

初期化される

surro.csvは、上書きされます。バックアップを目的として、事前に適当なディレクトリにsurro.csv のコピーを作成することを推奨します。利用者が独自にsurro.csvを編集したにもかかわらず、誤操作でsurroコマンドを実行したため、surro.csvが初期化された例を図73に示します。

HTMLを閲覧

まずsurro.txtの各行に1個の十六進数を記入してください。surro.txtは、シフトJISのテキストファイルです。次にsurroコマンドで、surro.csvを作成してください。一般論として、ウェブブラウザでUTF-16のファイルを閲覧できます。surroコマンドは、カレントディレクトリでcut_here.htmlを開くことができた場合、surro.csv だけではなくsurro.htmlも作成します。

HTMLは変換に必要ではない

カレントディレクトリでcut_here.htmlを開くことができない場合、surroコマンドは、surro.csvのみ作成して、正常に終了します。

HTMLは表作成が可能

ウェブブラウザでHTMLを閲覧することで、表の作成および確認が可能です。同一のディレクトリにCut_here_style_UTF-16.cssおよびsurro.htmlの両方が必要です。surro.htmlを閲覧するには、たとえば、エクスプローラでsurro.htmlを選択して、ダブルクリックしてください。Windows 10のパソコンで、Firefoxでsurro.htmlを開いて、サロゲートペアの長大な表を確認した例を図74に示します。

  • E-mail: sogaya@usahana.jp