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

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

keyun


keyunコマンドは、sortkコマンドのbinary.tmpを再利用します。

CSVは、多数の語句がコンマで区切られた行からなるテキストファイルです。sortkコマンドは、CSVの欄にある語句を比較して、行を並べ替えます。sortkコマンドは、manager.txtを作成できます。manager.txtにしたがって、keyunコマンドは、binary.tmpを読み込んで、行を並べ替えます。

設定ファイル

sortkコマンドは、一時ファイルとしてbinary.tmpを作成して、行を並べ替えます。sortkコマンドは、自動的にbinary.tmpを削除します。削除しないように命令するには、sortkコマンドのパラメータとして、-yを付加してください。keyunコマンドの設定ファイルは、manager.txtです。manager.txtを作成するには、sortkコマンドのパラメータとして、-%を付加してください。図48を参照してください。

sortk -t, -k2,2 -y -% -o text.tmp isbn-r.csv

行番号 記入 コメント 説明
1 520 lines 520行のファイルである。
2 0 decimals 0ならば語句を比較する。1ならば整数を比較する。2ならば浮動小数点数を比較する。
3 293 bytes 293バイトのレコードである。
4 0 -# IDを付与する。
5 0 -f 大文字と小文字を区別しない。
6 0 -! 要約が合致した行の番号を表示する。
7 binary.tmp binary.tmp 一時ファイルの名前
8 text.tmp keyun.txt 新しいファイルの名前
9 -CRLF -CRLF 0Dhおよび0Ahで改行する。
10 0 -r 降順に並べ替える。
11 0 -s 標準エラー出力ではなく標準出力に書き出す。
12 -y -y binary.tmpを削除してはならない。
13 0 -u 要約が合致した行がある場合、その要約は、1行のみ書き出す。

0ではないなら有効

manager.txtの各行の設定内容が0である場合、その行は、無効です。たとえば、-rの行が0である場合、降順に並べ替える設定は、無効です。すなわち、昇順で並べ替えます。

内容、タブ、コメントの順に記入

設定内容を左に詰めて記入してください。設定内容のみで改行できますが、シングルクォーツ、縦線、タブの次にコメントを記入できます。Perl, Rubyなどのスクリプト言語とは異なり、keyunは、シャープ( # )の次にコメントを記入できません。空白(20h)の次にコメントを記入できません。空白ではなくタブを利用してください。TYPEコマンドおよびWindowsのメモ帳では、タブが機能しますが空白に見えます。図49を参照してください。サクラエディタでは、タブが脱字記号(caret[ ^ ])で表示されます。MIFESでは、タブが大なり記号( > )で表示されます。

新しいファイルを命名したい

manager.txtの第8行にかかわらず、新しいファイルの作成および命名を行うには、keyunコマンドのパラメータとして、-o 名前を付加してください。図50を参照してください。

パラメータ ほぼ同等な入力 説明
-e 0Ahのみで改行する。
-f 大文字と小文字を区別しない。
-o new -o- > new 新しいファイルの作成および命名を行う。
-o- ファイルではなく画面に書き出す。
-r 降順に並べ替える。
-u 要約ごとに1行のみ表示する。
-y binary.tmpを削除してはならない。

降順

keyunコマンドの設定ファイルは、manager.txtです。manager.txtにしたがって、keyunコマンドは、binary.tmpを読み込んで、行を並べ替えます。図51では、2005年、2004年、2003年など、降順に並べ替えるために、keyunコマンドのパラメータとして-rを付加しました。

標準出力

設定ファイルに記入の新しいファイル名を無効にして、標準出力に書き出すには、keyunコマンドのパラメータとして-o-を付加してください。標準入力とは、キーボードのことです。標準出力とは、画面のことです。標準エラー出力も画面です。

要約ごとに1行のみ表示

要約が合致した行がある場合、その要約は、1行のみ表示するには、keyunコマンドのパラメータとして-uを付加してください。図52では、要約が合致した行があります。第20欄に59が記入されています。まず、sortkコマンドで、要約が合致した多数の行をtext.tmpに書き出しました。次に、-uを付加したkeyunコマンドで、要約ごとに1行のみ表示しました。

keyun -u -o-

図48. -y -%が付加されたsortkコマンドで、binary.tmpおよびmanager.txtが作成された 図49. コマンドプロンプトでもメモ帳でもタブを8個の空白に置換したかのように表示された 図50. manager.txtの第8行にかかわらず、keyun -oで新しいファイルを命名できた 図51. manager.txtの第10行にかかわらず、keyunコマンドに-rを付加することで降順に並べ替えた
図52. manager.txtにかかわらず、keyunコマンドで画面に要約ごとに1行のみ表示した 図53. -w~が付加されたsortkコマンドで、~どうしの間にあるコンマが無視された 図54. -bが付加されたsortkコマンドで欄の前半にある空白が無視されたため、順序が変化した 図55. PowerShellのMeasure-Commandでミリ秒を比較してkeyunコマンドが速いことを確認した
×

sortk


sortkコマンドは、CSVの欄にある語句を比較して、行を並べ替えます。

CSVは、多数の語句がコンマで区切られた行からなるテキストファイルです。CSVファイル名が指定されていない場合、sortkコマンドは、標準入力から読み込みます。CSVの行を並べ替えるには、sortkコマンドのパラメータとして、-t,(マイナスティーコンマ)を付加してください。-tおよびコンマの間に空白を挿入しないでください。区切り文字が指定されていない場合、sortkコマンドは、区切り文字として空白を使用します。

一時ファイル

hetnコマンドは、sutai.xmlを再利用しますが、keyunコマンドは、binary.tmpを再利用します。すなわち、keyunコマンドで一時ファイルを再利用するには、sortkコマンドは、sutai.xmlではなくbinary.tmpを作成しなければなりません。このため、C#版のsortkコマンドは、keyunコマンドに適していません。

sortk ライブラリ パラメータ 説明
C -y binary.tmpを削除しない。
C++ -y binary.tmpを削除しない。
C# .NET Framework 3.5 -i そもそもsutai.xmlを作成しない。
-y 一時ファイルを削除しない。
DMC STLport 4.5.3 -y binary.tmpを削除しない。

要約および詳細のブロック

利用者は、多数の欄を選択できます。sortkコマンドは、CSVの表を読み込んで、利用者選択の欄で要約を構成して、要約に詳細を結合します。sortkコマンドは、一時ファイルとしてbinary.tmpを作成します。binary.tmpは、多数のレコードからなるバイナリファイルです。どのレコードも同一の長さを有しています。sortkコマンドは、binary.tmpを読み込んで、要約のみ比較しながら要約および詳細のブロックを並べ替えます。詳細のみ書き出します。

引用符を変更したい

引用符が出現したら、sortkコマンドは、もうひとつの引用符が出現するまで、区切り文字を無視しますが、自由な表現として、いわゆる引用符( " )が欄内に出現する場合、sortkコマンドが認識する引用符を他の文字に変更しなければなりません。チルダ( ~ )が出現した場合もうひとつのチルダが出現するまで区切り文字を無視するように設定するには、sortkコマンドのパラメータとして、-w~を付加してください。sortkコマンドは、引用符として~を使用します。いわゆる引用符( " )は、もはや引用符として認識されません。

語句が短いほど上に来る

図53では、まず、-wA(Aは、ASCIIの文字です)のパラメータを付加しないsortkコマンドを実行しました。次に-w~を付加してみました。-w~が付加されていない場合、sortkコマンドは、And he saidの次も区切り文字としてコンマを使用して、語句が短いほど上に来るように行を並べ替えます。このため、マルコ14章36節がマルコ14章34節の上に来ました。自然な表現として、引用符もコンマもsortkコマンドに無視されるべきである場合、-w~を付加してください。CSVであるにもかかわらずコンマを無視したい範囲を~で囲んでください。

パラメータ ほぼ同等な入力 説明
-# 要約にIDを付与する。
-% 設定ファイルとして、manager.txtを作成する。
-b 比較開始欄の前半にある空白を無視する。
-g 浮動小数点数を比較する。
-i タブ、改ページなど制御文字を無視する。
-k2 第2欄から最終欄まで選択する。
-k2,2 -j2 第2欄のみ選択する。
-k2,3 -a3 -h011 第2欄から第3欄まで選択する。
-n 整数を比較する。
-o new > new 新しいファイルの作成および命名を行う。
-t, .csvの拡張子 区切り文字としてコンマを使用する。
-t¥l -t¥x7C Wikiの表の区切り記号として縦線を使用する。
-w~ -w¥x7E ~が引用符として利用される。
-x- .csvがファイル名に含まれるか点検しない。
-y binary.tmpを削除してはならない。

浮動小数点数

浮動小数点数を比較するには、-gを付加してください。浮動小数点数を比較するために-gが付加されたsortkコマンドは、小数点を発見します。小数点が発見されない場合、0.0になります。C版のsortkコマンドは、10欄まで浮動小数点数を選択できます。C#版のsortkコマンドは、20欄まで浮動小数点数を選択できます。-gが付加されたsortkコマンドは、もはや語句を比較できません。

整数

整数を比較するには、-nを付加してください。20欄まで整数を選択できます。-nが付加されたsortkコマンドは、もはや語句を比較できません。

数字に到達するまで無視される

浮動小数点数を比較するために-gが付加されたsortkコマンドは、比較開始欄の前半にある空白を無視します。負号、小数点、数字に到達するまで、空白だけではなく文字を無視します。整数を比較するために-nが付加されたsortkコマンドは、比較開始欄の前半にある空白を無視します。負号、数字に到達するまで、空白だけではなく文字を無視します。

欄の前半にある空白

空白は、制御文字ではありません。比較開始欄の前半にある空白を無視するには、sortkコマンドのパラメータとして、-bを付加してください。図54では、atndコマンドでファイルの先頭から3行をコマンドプロンプトに表示しました。空白が無視されたため、並べ替えた結果が異なります。空白を無視するために-bを付加したsortkコマンドは、整数でも浮動小数点数でもなく語句を比較します。

パラメータからコンマを排除

sortkコマンドのパラメータとして、-t,(マイナスティーコンマ)も-k2,3(マイナスケーニコンマサン)もコンマが含まれていますが、コンマの使用を回避できます。範囲を表現するために、コンマではなくハイフンを使用できます。-k2,3ではなく-k2-3が付加されても、sortkコマンドは、第2欄から第3欄まで選択します。コンマの十六進数は、2Chです。-t,ではなく-t¥x2Cが指定されても、sortkコマンドは、区切り文字としてコンマを使用します。

要約にIDを付与する

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

Measure-Command


Measure-Commandコマンドレットは、コマンドの実行時間を計測します。

図55では、PowerShellのMeasure-Commandでミリ秒を比較して、keyunコマンドがsortkコマンドより速いことを確認しました。binary.tmpの再利用は、意義深いことがわかります。

ドットでカレントディレクトリを示す

sortk.exe, keyun.exe, numbers7.csvをカレントディレクトリにコピーしました。1個のドットは、カレントディレクトリを意味します。パス名の区切り記号は、¥(5Ch)です。sortkコマンドのパス名を相対パスで示すために、ドット円( )を入力してください。keyunコマンドの設定ファイルを作成するために、sortkコマンドに-y -%を付加してください。numbers7.csvという名前に.csvが含まれるため、-t,は不要です。コンマではなくハイフンで範囲を示すことができます。Measure-Commandのスクリプトブロックに下記のコマンドを入力しました。

.¥sortk -k2-2 -n -y -% -o text.tmp numbers7.csv

atnd


atndコマンドは、ファイルを読み込んで、指定された位置およびその周辺の行を出力できます。もうひとつの機能としてファイルの行数を表示します。

たとえば、第640行を表示するには、atndコマンドのパラメータとして、-p640を付加してください。先行する4行も表示するには、さらに-b4を付加してください。後続の4行も表示するには、さらに-a4を付加してください。-c4は、-a4 -b4を意味します。

ファイルの開始部分

ファイルの開始部分として、3行を書き出すには、atndコマンドのパラメータとして、-h3を付加してください。-h3は、-b2 -p1を意味します。

行番号

行の先頭に番号を表示するには、atndコマンドのパラメータとして、-nを付加してください。読み込んだ各行の表示形式として、まず、行番号および縦線が表示されて、次に行が表示されます。正確に言えば、-nが付加されたatndコマンドは、ファイルの行の番号ではなく通し番号を表示します。TYPEコマンドで2個のファイルを連結して読み込んだら、atnd -nにより通し番号が表示されることが判明します。

パラメータ ほぼ同等な入力 説明
-a2 後続の2行を表示する。
-b3 先行する3行を表示する。
-c4 -a4 -b4 前後の4行を表示する。
-h8 -b7 -p8 ファイルの開始部分として、8行を表示する。
-LF ファイルの行数を表示する。
-LF -=DIR 情報源として、DIRというラベルを表示する。
-n 行の先頭に番号を表示する。
-p567 第567行を表示する。
-t9 -b8 -p行数 ファイルの終わりにある9行を表示する。

ファイルの行数

テキストファイルの行数を表示するには、atndコマンドのパラメータとして、-LFを付加してください。まず、行数が表示されます。次に、最長の行のバイト数および行番号が表示されます。最後に、第1行が表示されます。第1行ではなく第640行を表示するには、さらに-p640を付加してください。

標準入力から読み込む

ファイル名が指定されていない場合、atndコマンドは、標準入力(stdin)から読み込みます。標準入力とは、キーボードのことです。標準出力とは、画面のことです。標準エラー出力も画面です。行数を表示するために-LFを付加する場合、情報源として標準入力(stdin)を命名するには、-=名前を付加してください。

ファイルの終わり

ファイルの終わりにある9行を表示するには、atndコマンドのパラメータとして、-t9を付加してください。atndコマンドは、自動的にファイルの行数を取得して、-b8 -p行数が指定されたと同等の結果を生じます。

CD


CDコマンドは、カレントディレクトリを変更します。

たいていカレントディレクトリは、コマンドプロンプトで、大なり記号の左に表示されています。余談ですが、PROMPTコマンドは、大なり記号の左に何を表示するか設定します。それはさておき、コマンドプロンプトが開いたとき、すでにカレントディレクトリが設定されているため、利用者は、自分でCDコマンドを実行して、作業したい場所に移動しなければなりません。すなわち、作業ディレクトリがカレントディレクトリになるように、カレントディレクトリを変更しなければなりません。

サブディレクトリ

あるディレクトリより下位にあるディレクトリをサブディレクトリと言います。カレントディレクトリのサブディレクトリに移動するには、コマンドプロンプトにCD サブディレクトリ名を入力して、Enterを押してください。たとえば、カレントディレクトリがsortk-Cであり、サブディレクトリがkeyunである場合、コマンドプロンプトに下記のコマンドおよびパラメータを入力して、Enterを押してください。

CD keyun

2個のドット

カレントディレクトリより上位にあるディレクトリに移動するには、コマンドプロンプトに下記のコマンドおよびパラメータを入力して、Enterを押してください。たとえば、カレントディレクトリがkeyunであり、上位にあるディレクトリがsortk-Cである場合、sortk-Cに移動します。

CD ..

ルートディレクトリ

あるディスク装置(ドライブ)の最上位をルートディレクトリまたはルートフォルダと言います。単にルート(root)という場合もあります。ディスクをフォーマットしたとき、まだファイルもディレクトリも作成していないため、ルートディレクトリのみ存在します。

Cドライブ

Cドライブのルートディレクトリは、C:¥です。カレントディレクトリのパス名がC:¥sortk-C¥keyunである場合、C:¥に移動するには、コマンドプロンプトに下記のコマンドおよびパラメータを入力して、Enterを押してください。

CD ¥

木構造

根、幹、枝、葉がある木構造の類推で、Cドライブのルートディレクトリ(根)を経由して、どのディレクトリにも移動できることがわかります。作業ディレクトリのパス名がC:¥workである場合、あるディレクトリからworkディレクトリに移動するには、コマンドプロンプトに下記のコマンドおよびパラメータを入力して、Enterを押してください。

CD ¥work

相対パス

C:¥が含まれていないパス名を相対パスと言います。相対パスは、カレントディレクトリに基づいて表現されるため、同じ相対パスが異なるディレクトリを意味するおそれがあります。ルートディレクトリではなくカレントディレクトリを基準にして移動できます。たとえば、カレントディレクトリのパス名がC:¥sortk-C¥keyunである場合、C:¥sortk-C¥atndに移動するには、コマンドプロンプトに下記のコマンドおよびパラメータを入力して、Enterを押してください。

CD ..¥atnd

2個のドットで連続的に移動

2個のドットは、あるディレクトリより上位にあるディレクトリを意味します。2個のドットを1組として、2組以上を組み合わせることで、相対パスを表現できます。たとえば、カレントディレクトリのパス名がC:¥sortk-C¥keyun¥source_codeである場合、C:¥sortk-C¥atndに移動するには、コマンドプロンプトに下記のコマンドおよびパラメータを入力して、Enterを押してください。

CD ..¥..¥atnd

パラメータ 説明
/D ドライブおよびルートディレクトリが含まれるパス名で指定できるようにする。

ドライブを変更する

たとえば、USBメモリーがEドライブである場合、しかもE:¥PDFに移動したい場合、まず、コマンドプロンプトにE:を入力してEnterを押すことでEドライブに移動できます。次に、EドライブのどのディレクトリでもCD ¥PDFで、PDFディレクトリに移動できます。E:¥PDFにいきなり移動するには、コマンドプロンプトに下記のコマンドおよびパラメータを入力して、Enterを押してください。

CD /D E:¥PDF

  • E-mail: sogaya@live.jp