[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

8. 行のフィールドの処理

8.1 cut: 行の選択した部分の出力  Print selected parts of lines.
8.2 paste: ファイルの行を統合します  Merge lines of files.
8.3 join: 共通のフィールドで行を結合  Join lines on a common field.


8.1 cut: 行の選択した部分の出力

cutは,それぞれの入力ファイルや,ファイルが与えられない場合 や`-'のファイル名に対しては標準入力の,それぞれの行の選択された部 分を標準出力に書き出します.概要です.

 
cut [option]... [file]...

以下の表で,byte-listcharacter-list,そして field-listは,一つ以上の数字またはカンマで分けられた(ダッシュで 分けられた二つの数字の)範囲です.バイト,文字,そしてフィールドは,1で 始まる番号がつきます.不完全な範囲を与えることができます. `-m'は`1-m'を意味します.`n-'は, `n'から行末やフィールドの終りまでを意味します.

このプログラムは以下のオプションも受け入れます.2. 共通のオプションも 参照してください.

`-b byte-list'
`--bytes=byte-list'
byte-listでリストアップされた位置にあるバイトのみを出力します. タブとバックスペースは他の文字と同様に扱われます.それらは1バイト使用 します.出力の分離文字が指定されている場合(`--output-delimiter' を参照して下さい),選択したバイトの範囲の間の文字列を出力します.

`-c character-list'
`--characters=character-list'
character-listにリストアップされている位置にある文字のみを出力し ます.現在は`-b'と同じですが,国際化でそれが変更される可能性が あります.タブとバックスペースは他の文字と同様に扱われます.それらは1 バイト使用します.出力の分離文字が指定されている場合 (`--output-delimiter' を参照して下さい),選択したバイトの範囲の 間の文字列を出力します.

`-f field-list'
`--fields=field-list'
field-listにリストアップされたフィールドのみを出力します.デフォ ルトで,フィールドはTAB文字で分けられています. `--only-delimited' (`-s')オプションが指定されない限り, デリミタ文字の無い行も出力されます.

`-d input_delim_byte'
`--delimiter=input_delim_byte'
`-f'に対し,フィールドは,input_delim_byteの最初の文字に よって,入力を分離したものになります.(デフォルトはTABです).

`-n'
マルチバイトの文字を分けません(現在何もしません).

`-s'
`--only-delimited'
`-f'に対し,フィールド分離文字を含まない列を出力しません.通常, フィールド分離文字が無い行は,そのまま出力されます.

`--output-delimiter=output_delim_string'
`-f'に対し,出力フィールドは,output_delim_stringで分けら れます.デフォルトは入力の分離文字を使用します.バイトや文字のオフセッ トの範囲を選択するために`-b'や`-c'を使用しているとき,選 択したバイト数の範囲の間にoutput_delim_stringを出力します.


8.2 paste: ファイルの行を統合します

pasteは,与えられたそれぞれのファイルの,順番的に対応してい る行を,TAB文字で分離しながら標準出力に書き出します.`-'のファイ ル名に対して,または入力ファイルが与えられない場合,標準入力が使用され ます.

例えば以下のようになります.

 
$ cat num2
1
2
$ cat let3
a
b
c
$ paste num2 let3
1       a
2       b
        c

概要です.

 
paste [option]... [file]...

プログラムは以下のオプションを受け入れます.2. 共通のオプションも参照 してください.

`-s'
`--serial'
それぞれのファイルから一行ではなく,一度に一つのファイルの行をペースト します.

 
$ paste -s num2 let3
1       2
a       b       c

`-d delim-list'
`--delimiters=delim-list'
統合される行の分離文字TABの代わりに,delim-listの文字を順番に使 用します.delim-listが使い尽くされたとき,最初から再び開始します.

 
$ paste -d '%_' num2 let3 num2
1%a_1
2%b_2
%c_


8.3 join: 共通のフィールドで行を結合

joinは,同一の結合フィールドを持つそれぞれの入力行の組に対し, 一行を標準出力に書き出します.概要です.

 
join [option]... file1 file2

file1またはfile2は(両方ではなく)`-'が可能で,標準入力 を意味します.file1file2は,結合フィールド上で並べ替えし ておくべきです.

通常,並べ替えの順序は,LC_COLLATEロケールで指定されている順番で す.`-t'オプションが与えられない限り,sort -bのように, 並べ替えの比較では結合フィールドの最初の空白は無視されます. `--ignore-case'オプションが与えられている場合,sort -fの ように,並べ替えの比較では結合フィールドの文字の大文字小文字は無視され ます.

しかし,GNUの拡張として,入力に組になる行が無い場合,並び順は,上 記の並び替えの比較が同じであると考えられる場合,そしてそのときだけ,二 つのフィールドが同じであると考えられる順番になるはずです.例えば,以下 のようになります.

 
$ cat file1
a a1
c c1
b b1
$ cat file2
a a2
c c2
b b2
$ join file1 file2
a a1 a2
c c1 c2
b b1 b2

デフォルトは,以下の通りです.結合フィールドは,それぞれの行の最初の フィールドです.入力のフィールドは,一つ以上の空白で分離されていて,行 の前の空白は無視されます.出力のフィールドはスペースで分離されています. それぞれの出力行は,結合フィールド,file1の残りのフィールド,そ してfile2の残りのフィールドから成り立ちます.

プログラムは,以下のオプションを受け入れます.2. 共通のオプションも参 照してください.

`-a file-number'
ファイルfile-number (`1'または`2'のいずれか)で組になっ ていないそれぞれの行に対し,一行を通常の出力に追加して出力します.

`-e string'
入力で欠けているこれらの出力フィールドを,stringで置換します.

`-i'
`--ignore-case'
キーを比較するとき,大文字小文字の違いを無視します.このオプションを用 いると,入力ファイルの行は同じ方法でソートされている必要があります.こ の順序を生成するために,`sort -f'を使用してください.

`-1 field'
`-j1 field'
ファイル1のフィールドfield(正の整数)で結合します.

`-2 field'
`-j2 field'
ファイル2のフィールドfield (正の整数)で結合します.

`-j field'
`-1 field -2 field'と同じです.

`-o field-list...'
field-listの書式に従い,それぞれの出力行を生成します. field-listのそれぞれの要素は,単一文字`0',または,ファイル 番号のm,`1'または`2',そしてnが正のフィールド番 号となっている,m.nの形式になります.

`0'のフィールド指定は,結合フィールドを示します.ほとんどの場合, `0'フィールドの指定の機能は,対応する結合フィールドとなる,明示的 なm.nを用いて再現できます.しかし,(`-a'または`-v' オプションを用いて)組にならない行を出力するとき,両方のファイルで組に ならない行がある場合,field-listm.nを用いて結合フィール ドを指定する方法はありません.joinにその機能を与えるため, POSIXは`0'フィールド指定の表記を考え出しました.

field-listの要素は,カンマまたは空白で分けられています.複数の field-list引数を,単一の`-o'オプションの後に与えることが 可能です.`-o'で与えられる全てのリストの値は,一緒に連結されま す.全ての出力行は -- `-a'や`-v'オプションで出力されるも のを含め -- 指定されたfield-listが適用されます.

`-t char'
文字charを入出力のフィールドセパレータとして使用します.

`-v file-number'
通常の出力の代わりに,ファイルfile-number (`1'または `2')の組にならないそれぞれの行に対し,一行を出力します.

更に,GNU joinは,単一の引数で呼び出されたとき,オプショ ン`--help'と`--version'は認識されます.See section 2. 共通のオプション.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on February, 25 2004 using texi2html