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行のみ書き出す。 |
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行のみ表示するには、keyunコマンドのパラメータとして-uを付加してください。図52では、要約が合致した行があります。第20欄に59が記入されています。まず、sortkコマンドで、要約が合致した多数の行をtext.tmpに書き出しました。次に、-uを付加したkeyunコマンドで、要約ごとに1行のみ表示しました。
keyun -u -o-
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を付与するには、sortkコマンドのパラメータとして、-#を付加してください。IDが要約に付与されても、sortkコマンドは、要約ではなく詳細を書き出します。
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コマンドは、ファイルを読み込んで、指定された位置およびその周辺の行を出力できます。もうひとつの機能としてファイルの行数を表示します。
たとえば、第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コマンドは、カレントディレクトリを変更します。
たいていカレントディレクトリは、コマンドプロンプトで、大なり記号の左に表示されています。余談ですが、PROMPTコマンドは、大なり記号の左に何を表示するか設定します。それはさておき、コマンドプロンプトが開いたとき、すでにカレントディレクトリが設定されているため、利用者は、自分でCDコマンドを実行して、作業したい場所に移動しなければなりません。すなわち、作業ディレクトリがカレントディレクトリになるように、カレントディレクトリを変更しなければなりません。
あるディレクトリより下位にあるディレクトリをサブディレクトリと言います。カレントディレクトリのサブディレクトリに移動するには、コマンドプロンプトにCD サブディレクトリ名を入力して、Enterを押してください。たとえば、カレントディレクトリがsortk-Cであり、サブディレクトリがkeyunである場合、コマンドプロンプトに下記のコマンドおよびパラメータを入力して、Enterを押してください。
CD keyun
カレントディレクトリより上位にあるディレクトリに移動するには、コマンドプロンプトに下記のコマンドおよびパラメータを入力して、Enterを押してください。たとえば、カレントディレクトリがkeyunであり、上位にあるディレクトリがsortk-Cである場合、sortk-Cに移動します。
CD ..
あるディスク装置(ドライブ)の最上位をルートディレクトリまたはルートフォルダと言います。単にルート(root)という場合もあります。ディスクをフォーマットしたとき、まだファイルもディレクトリも作成していないため、ルートディレクトリのみ存在します。
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個のドットを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