[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

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


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

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

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

 
cut [option]… [file]…

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

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

-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]…

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

-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の残りのフィールドから成り立ちます.

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

-a file-number

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

-e string

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

-i
--ignore-case

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

-1 field

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

-2 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の要素は,カンマまたは空白で分けられています.全ての出 力行は – ‘-a’や‘-v’オプションで出力されるものを含め – 指定されたfield-listが適用されます.

-t char

文字charを入出力のフィールドセパレータとして使用します.入力ファ イルでcharが見つかるたびに,意味があるものとして扱います.

-v file-number

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

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

終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.


[ << ] [ >> ]           [冒頭] [目次] [見出し] [ ? ]

この文書は新堂 安孝によって2009年9月22日texi2html 1.82を用いて生成されました。