|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
! h# P4 Q1 k9 U4 }$ p4 tLinux join命令用于将两个文件中,指定栏位内容相同的行连接起来。8 s/ ?! X @4 f# v, X9 g7 K0 z) u
; A9 G. w" T8 s; N3 ^! ]
找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
" ^. h+ f4 @3 U# A( }& _. O' @ u6 o9 Y+ k' y. g
语法
/ j" h) S$ a. _) Y( Q$ [1 e# ]; U/ X o m
join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]8 N* i7 {4 h! b% S" W
, Q* x2 S" J: S9 y$ l# |" c3 _ x
参数:
& p- N; q. S4 [8 x: K% h" C) g/ u0 x3 Q0 o! B! g3 i9 \
-a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。3 l" M8 W$ A) t2 c) J* y
-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。3 T# `) `% s' F' c& X: L
-i或--igore-case 比较栏位内容时,忽略大小写的差异。
3 h& L7 [: H9 i9 p8 d-o<格式> 按照指定的格式来显示结果。
/ T0 j$ G ` L- v: b8 c. S-t<字符> 使用栏位的分隔字符。1 ^. s% h1 H) l$ d0 Y2 D+ R5 h
-v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。
" A% b- W/ ~/ [: z6 p-1<栏位> 连接[文件1]指定的栏位。2 w* v9 l1 S7 o9 @; d
-2<栏位> 连接[文件2]指定的栏位。
- ?8 Y: t' L. m& x6 e `1 Y8 x--help 显示帮助。$ B. u4 Y1 U! z. K
--version 显示版本信息。: W9 s% z. q: F
实例
9 S( r) F+ _5 b8 g连接两个文件。
4 A% J$ M- J3 n) r7 S8 |( T6 H0 m5 B: n
为了清楚地了解join命令,首先通过cat命令显示文件testfile_1和 testfile_2 的内容。
# _, g' K+ W; K; I6 b
# I! P+ V! e' h( i6 s然后以默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来,在终端中输入命令:7 C t" x& S4 {" Y
6 }7 B: x. p) Ojoin testfile_1 testfile_2
; N* t1 D" ~$ R' g3 l$ ?3 B- |首先查看testfile_1、testfile_2 中的文件内容:4 Q, F `; ^# G4 G& H
! A" ?8 M0 J% f# [: U0 @6 L
$ cat testfile_1 #testfile_1文件中的内容 ( f' X4 B, Z* a) P V3 \
Hello 95 #例如,本例中第一列为姓名,第二列为数额
+ p r1 F2 m- j5 b2 x$ } yLinux 85
3 p: [$ U9 s; N; K2 ~test 30 9 i( c" I$ F9 ?' e
cmd@hdd-desktop:~$ cat testfile_2 #testfile_2文件中的内容 2 p k9 w1 ~7 P& m* s2 G4 Q# \: M
Hello 2005 #例如,本例中第一列为姓名,第二列为年份
H' W% x4 `& K4 T( TLinux 2009
0 t1 W% z/ u! N# Etest 2006 9 O& Y7 e; k; [3 G' M
然后使用join命令,将两个文件连接,结果如下:! K3 Y- D9 o- ^" v5 O5 p
6 k" o0 o+ n) J3 H
$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容
6 o& s2 D+ K3 EHello 95 2005 #连接后显示的内容 # L l1 T6 h* r
Linux 85 2009 # P8 Q d1 }, g5 ]$ z/ S$ p
test 30 2006 6 p) y9 [5 j( m: |4 U
文件1与文件2的位置对输出到标准输出的结果是有影响的。例如将命令中的两个文件互换,即输入如下命令:
! e( U0 d) z7 {$ W( b
3 M* T' A& O4 U% I7 i8 M6 x6 njoin testfile_2 testfile_1! ?, |6 C; V: c) ^* L1 P
最终在标准输出的输出结果将发生变化,如下所示:
]5 W9 f1 I! @
. `1 P" o- [; B( l( E$ join testfile_2 testfile_1 #改变文件顺序连接两个文件 y$ j& G3 R$ m9 M- ~* v. F
Hello 2005 95 #连接后显示的内容 & f. d1 ~6 |2 S7 R+ f$ v/ V
Linux 2009 85 9 |$ ^2 k- Y. k: p3 ^3 W9 s9 B' ]
test 2006 30
% ]# k7 Y! g% u0 W' i4 L# q' Y- S5 o1 e$ D
|
|