|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
+ n3 M! ]; e p
Linux join命令用于将两个文件中,指定栏位内容相同的行连接起来。! R! |: V+ t" C, v
* \3 l! z1 X2 S: w+ D$ D0 ] S5 R
找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
! d- p+ s8 N& P5 W3 u* e. ~# L
0 P0 e( Y% Z2 w0 H+ a. G% J: m语法$ p7 V1 s2 H& @) a1 T# m8 v" b
' ?+ D& E: ^( L% p# k/ mjoin [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]% T. e. M! B7 N2 J# p" J4 I- a
+ z2 M. O+ m) e+ h; k# \
参数:! D1 Y, M; B# B. M8 T$ f. T
- |/ t/ K; r1 p/ G-a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。4 D4 [+ _+ p" w1 M j
-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。# p6 ^! c2 l$ C1 D% ?6 K0 N
-i或--igore-case 比较栏位内容时,忽略大小写的差异。
* c* M3 r0 N. {. ?& j0 @-o<格式> 按照指定的格式来显示结果。
4 A- T/ H( Q2 ]" M-t<字符> 使用栏位的分隔字符。! }7 m* [; R3 S) o& g, X# \! X7 c. B
-v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。& A) `) z; r9 u* o- b E6 O( i
-1<栏位> 连接[文件1]指定的栏位。. i4 \) Z. P7 D3 n0 d
-2<栏位> 连接[文件2]指定的栏位。
, F& h+ [: ?8 S5 q- _( g--help 显示帮助。* [; i5 [6 J8 C- P8 [0 H
--version 显示版本信息。
# `. S& H' J1 n% k* ~* \实例) G$ y# o% a' q2 T) b
连接两个文件。# k* { k0 F& @" T) f1 g* d' T8 I7 J$ a
% \" ~: ? {7 g: X% k3 R7 v
为了清楚地了解join命令,首先通过cat命令显示文件testfile_1和 testfile_2 的内容。
5 {$ M% W* |; l1 t' v* A4 k" b2 t% `8 m# N! D3 G ~3 x' h+ Q
然后以默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来,在终端中输入命令:' j5 {8 P I. [) u# K
1 x4 E( l5 ~9 D+ |6 B
join testfile_1 testfile_2 7 n2 s9 u. ?+ g5 b+ R# e
首先查看testfile_1、testfile_2 中的文件内容:
, _# B- L! m+ w0 t7 W
+ a; G. w: g. R/ b0 d( |$ cat testfile_1 #testfile_1文件中的内容 % w3 }; \4 m/ a; C
Hello 95 #例如,本例中第一列为姓名,第二列为数额 - m) ^2 m, Y3 z- X( C
Linux 85
6 z( N+ v, h) Ttest 30 ( [2 W8 J( y ` s) P3 p% s# L% W6 `
cmd@hdd-desktop:~$ cat testfile_2 #testfile_2文件中的内容 # D4 |+ G3 |# F7 \- a
Hello 2005 #例如,本例中第一列为姓名,第二列为年份 ' V0 J8 g. E$ |" |& _3 M
Linux 2009 4 @2 A0 S z8 b( M! b" H( Q! U3 L! y
test 2006
) w; u0 }6 ?3 ]/ v: K0 F然后使用join命令,将两个文件连接,结果如下:
- Q+ g5 a- N* r' Y L3 N0 Z
& Z8 z1 L" {1 Q6 D6 `$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容 7 s) ]5 _$ f7 u& V% o$ u
Hello 95 2005 #连接后显示的内容
4 t& z% N$ o3 zLinux 85 2009 ! E( _5 h; [5 H% p9 n
test 30 2006
0 P# v: Z2 g4 z文件1与文件2的位置对输出到标准输出的结果是有影响的。例如将命令中的两个文件互换,即输入如下命令:0 u% m( L6 a- w
: o3 u! e" S. _ M
join testfile_2 testfile_1
L7 \* h% X" l$ p# x0 ~6 R7 J: Y8 p1 C最终在标准输出的输出结果将发生变化,如下所示:2 i3 S6 B. s* k( C% i7 F
+ b9 W% F; w+ I- r/ ?: h( C* o
$ join testfile_2 testfile_1 #改变文件顺序连接两个文件
1 Q5 w: I5 H& @; M/ C. p5 nHello 2005 95 #连接后显示的内容 % p' {: o& Q7 O5 a/ U; s. U' m
Linux 2009 85
1 o. N/ Z( [1 F. r' vtest 2006 30 3 U" z# A- E# u, @
: k" f6 J# e" a" Y+ I! Y
|
|