aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man1/join.1
blob: 8bf15d1a98e0f49f032ce0656fd4d576e50e2b0a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
.\" Copyright (c) 1990, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" the Institute of Electrical and Electronics Engineers, Inc.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"	@(#)join.1	8.3 (Berkeley) 4/28/95
.\" %FreeBSD: src/usr.bin/join/join.1,v 1.3.2.3 2001/08/16 13:16:51 ru Exp %
.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/join.1,v 1.6 2001/07/04 05:31:24 horikawa Exp $
.\"
.Dd April 28, 1995
.Dt JOIN 1
.Os
.Sh 名称
.Nm join
.Nd リレーショナルデータベースの操作
.Sh 書式
.Nm
.Oo
.Fl a Ar file_number | Fl v Ar file_number
.Oc
.Op Fl e Ar string
.Op Fl j Ar file_number field
.Op Fl o Ar list
.Bk -words
.Ek
.Op Fl t Ar char
.Op Fl \&1 Ar field
.Op Fl \&2 Ar field
.Ar file1
.Ar file2
.Sh 解説
.Nm
ユーティリティは、指定されたファイルに対し
.Dq equality join
と呼ばれる、
各ファイルの同一の部分を結合する操作を施して結果を標準出力に出力します。
.Pp
比較は、それぞれのファイルの
.Dq join field
と呼ばれるフィールドで
行ないます。デフォルトでは、各行の最初のフィールドが使用されます。
.Ar file1
と
.Ar file2
の中で、
.Dq join field
が一致した行が組みとなり、1 行で出力されます。
join field と、
.Ar file1
のうちの残りのフィールド、その後、
.Ar file2
のうちの残りのフィールドが 1 行になって出力されます。
.Pp
フィールドの区切は、デフォルトではタブか空白文字です。複数のタブや空白
が繋っていても、1 つの区切とみなされ、読み込み時にこれらは無視されます。
出力時の各フィールドの区切は、デフォルトでは空白 1 文字です。
.Pp
ファイルとフィールドの番号に関し、多くのオプションがあります。これらの
番号は常に、1 から始まります。すなわち、コマンドラインの最初のファイル
はファイル番号 1 番であり、各行の最初のフィールドは、フィールド番号 1
番となります。
.Bl -tag -width indent
.It Fl a Ar file_number
デフォルトの出力に加えて、
.Ar file_number
で指定したファイルに関して、同一フィールドがなかった行を表示します。
(
.Fl a
の引数の前には空白を入れてはなりません;
.Sx 互換性
の節を御覧ください。)
.It Fl e Ar string
出力時に、空のフィールドがあれば
.Ar string
で指定した文字列に置き換えます。
.It Fl o Ar list
.Nm
の処理して出力すべき行に関し、デフォルトの順序でなく、
.Ar list
で指定した順序で各ファイルの各フィールドを出力
するようにします。
.Ar list
の各要素は、
.Ql file_number.field
で表わし、要素間は、コンマ
.Pf ( Dq , Ns )
か空白で区切ります
(空白で区切る場合は、シェルが要素を別々のパラメータに分解しないよう
クォーティングするか、複数の
.Fl o
オプションを使用します)。
.It Fl t Ar char
入力および出力に使用するフィールドの区切として
.Ar char
で指定した文字を使用するようにします。
1行の中で出現したすべての
.Ar char
が有効です。
.It Fl v Ar file_number
.Ar file_number
で指定したファイル番号のファイルに関して、
join 処理で同一フィールドが見つからなかった行だけを表示する
ようにします。
.Fl v Ar 1
と
.Fl v Ar 2
を同時に指定してもかまいません。
.It Fl 1 Ar field
ファイル 1 の
.Dq join field
を
.Ar field
で指定した番号のフィールドとします。
.It Fl 2 Ar field
ファイル 2 の
.Dq join field
を
.Ar field
で指定した番号のフィールドとします。
.El
.Pp
デフォルトのフィールド区切り文字が使われた場合、
ファイルが結合される順序は
.Xr sort 1
に
.Fl b
オプションを付けたものと同様になるはずです。
逆に、
.Nm
.Fl t
オプションによって、フィールド区切り文字が指定されている場合、
フィールドの照合順序は
.Xr sort 1
で
.Fl b
オプションを指定しない場合と同じになるはずです。
.Pp
.Ar file1
または
.Ar file2
のうちの片方が
.Dq -
であった場合には、標準入力が使われます。
.Sh 診断
.Nm
は、実行に成功した場合に 0 を返し、エラーが発生した場合には 0 より大きな
値を返します。
.Sh 互換性
さらに、古いバージョンの
.Nm
との互換のため、次のオプションも使用できます。
.Bl -tag -width indent
.It Fl a
デフォルトの出力に加え、file1 と file2 の各々で、同一フィールド
がない行を表示します。
(これと
.Fl a Ar file_number
を区別するために、
.Nm
は現在後者は空白を含まないことを必要としています。)
.It Fl j1 Ar field
ファイル1の ``join field'' を
.Ar field
で指定した番号のフィールドとします。
.It Fl j2 Ar field
ファイル2の ``join field'' を
.Ar field
で指定した番号のフィールドとします。
.It Fl j Ar field
file1 と file2 の ``join field'' を
.Ar field
で指定した番号のフィールドとします。
.It Fl o Ar list ...
歴史的な
.Nm
の実装では
.Fl o
オプションに複数の引数を許可していました。
これらの引数は、現在の
.Fl o
オプションで説明したものと同じ
.Dq file_number.field_number
という形式でした。
しかし、この方法では
.Ql 1.2
と名付けられたファイルが存在すると、明らかに困難を生じます。
.El
.Pp
これらのオプションは、修正をしたくないような非常に古いシェルスクリプト
のためだけに用意されています。
これらのオプションは、使うべきではありません。
.Sh 規格
.Nm
コマンドは
.St -p1003.2
互換です。
.Sh 関連項目
.Xr awk 1 ,
.Xr comm 1 ,
.Xr paste 1 ,
.Xr sort 1 ,
.Xr uniq 1