tagmsort

提供: Personal Tukubai for Academic
2021年6月7日 (月) 08:37時点におけるPt4a editor (トーク | 投稿記録)による版 (Batch Update)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

名前

tagmsort : タグファイルのオンメモリソート

書式

使い方とオプション

Usage

tagmsort key=<key> <file>

Option

-e
-s<c>
-p<n>

説明

key=<key> にしたがって <file> のソートを行います。<key> として、フィールドの位置を指定できます。

keymsort key=TAG2 file
tagmsort key=TAG2/TAG5 file
tagmsort key=TAG3@TAG1@TAG2 file

キーの長さやキーフィールド数の制限はありません。日本語などのマルチバイト文字が含まれていても構いません。フィールド位置の後に :r を付けると、そのフィールドは降順にソートされます。:n を付けると、そのフィールドは数値として比較されます。:N を付けると、数値として比較されますが、降順になります。/ の前後のフィールドにソート種別を付ける場合は、前後で揃っている必要があります。

tagmsort key=TAG2:n/TAG5:n file      ○
tagmsort key=TAG2:n/TAG5:N file      ×
tagmsort key=TAG2:n/TAG5   file      ×

フィールドを指定するタグ名はブレース({})で囲むことができます。この場合、タグ名が / や @ を含むことができます。また、対になったブレースを含むこともできます。ブレースで囲んでソート種別を付ける場合は : を付けません。

tagmsort key={TAG2}n/{TAG5}n

ファイル名を指定しない、或は - を指定した場合、標準入力から読み込みます。

-p<n> オプションを指定すると、<n> プロセスで並列実行します。指定できるプロセス数に制限はありませんが、コア(CPU)数より多いプロセス数を指定すると性能が低下します。入力が 10000 行未満の場合は、-p<n< オプションを指定しても 1 プロセスで実行されます。

-T<tmpdir> オプションを指定すると、一時ファイルが必要な場合に一時ファイルをディレクトリ <tmpdir> に作成します。デフォールトは /tmp です。一時ファイルが必要な場合は、入力ファイルがパイプ等の特殊ファイルの場合です。ただし、Linux の場合は、入力ファイルが特殊ファイルの場合でも一時ファイルを使いませんので、このオプションは無視されます。

-e オプションを指定すると、以下の置換を行った文字列で比較を行います。

_  →  0x20 (space)
¥0 →  0x00 (null)
¥t →  0x09 (tab stop)
¥n →  0x0a (new line)
¥r →  0x0d (carrige return)
¥_ →  0x5f (under score)
\\ →  0x5c (back slash)

この置換の _ は、-s<c> オプションで変更することができます。

-p<n> オプションを指定すると、<n> プロセスで並列実行します。指定できるプロセス数に制限はありませんが、コア(CPU)数より多いプロセス数を指定すると性能が低下します。入力が10000 行未満の場合は、-p<n> オプションを指定しても 1 プロセスで実行されます。

注意

msort はマージソートによってソートを行っていますので、入力データによって実行時間が異常に長くなるということはありません。

備考

msort はオンメモリソートの為、最大でソートするファイルの3倍程度の量のメモリを消費します。

Version and Edition

Version : Tue Jan 12 23:04:38 JST 2021

Edition : 5


© 2021 Universal Shell Programming Laboratory site