|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
+ }; x- W" C# t* FLinux join命令用于将两个文件中,指定栏位内容相同的行连接起来。
" ^! u$ Y) t0 z5 v) c( m$ P
' L6 o1 B3 O) i- [9 L1 P找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。) \, M& @) [8 r% q& U
1 ~4 u8 Y) C- ]- x2 s- w$ P0 p) I7 g: {
语法
2 ?0 L* {" b9 h4 s" ^* M- X
' s$ ?% {5 d# v0 c. J& s% sjoin [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]2 K I2 b& K8 n/ ^1 E% e- k
* _' {3 f; t# ~: X/ Z
参数:
: f) {9 h/ h: B% j6 M" G
; Y F. P5 {# v7 K3 x-a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。. D B6 R+ d9 ^5 ^2 E: D( v4 S
-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
: p/ b& K: w. a* R-i或--igore-case 比较栏位内容时,忽略大小写的差异。
- u* c' m1 F. V( D-o<格式> 按照指定的格式来显示结果。* }1 u. A- u8 y: _) a* X* H
-t<字符> 使用栏位的分隔字符。+ ~% h6 X# ]8 r7 l( {8 ^# H
-v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。
: |, W; ~ p( O-1<栏位> 连接[文件1]指定的栏位。8 D7 L9 T. h C% E
-2<栏位> 连接[文件2]指定的栏位。
3 b) Z. ~' J' h# J7 ]: a9 s--help 显示帮助。 ]- c6 f6 D1 Z( ?* w* U
--version 显示版本信息。3 i! F) o' m6 l# |3 a% H% H
实例
/ _& n0 [. Q- {9 N- a' X3 {连接两个文件。, l+ Y& }# t* h1 w( w8 J
* d# i" e6 v) E7 \+ k为了清楚地了解join命令,首先通过cat命令显示文件testfile_1和 testfile_2 的内容。
( U0 V% e! ~9 _. K; R) }; ^
+ m5 r, W" j" D! h7 \+ I3 \1 u然后以默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来,在终端中输入命令:0 m, J1 \: s+ T$ U# ^# ~
/ G+ p+ g0 O3 t3 n: [
join testfile_1 testfile_2 * f/ b% T# k r, @* @& A# e; i" n' e5 w x
首先查看testfile_1、testfile_2 中的文件内容:
: h1 P- @9 h1 i+ ^( X
5 C& f) t7 N" p& e, J8 k+ f5 k1 |$ cat testfile_1 #testfile_1文件中的内容
( K- H0 B- S( @# N5 SHello 95 #例如,本例中第一列为姓名,第二列为数额
0 f) y" X6 K: sLinux 85
- @- U: e6 P- d+ c8 ?test 30 ! g2 f8 O1 q7 K% I& V; \
cmd@hdd-desktop:~$ cat testfile_2 #testfile_2文件中的内容 # q) Q0 B. B2 h; d! N* o
Hello 2005 #例如,本例中第一列为姓名,第二列为年份 $ u% Q- M7 u8 i# ~7 T' X% v
Linux 2009
5 a5 H, d8 h5 v! h+ y7 xtest 2006
% T D5 f" e! V# a4 Z然后使用join命令,将两个文件连接,结果如下:
# ?# o+ e( j" C' H3 }) Z. c
% v9 E" t, X H& [; P4 Z$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容 . W; X, z! |2 V$ O) B: _. h& K
Hello 95 2005 #连接后显示的内容 - l9 W0 x; s# e+ ]' G" |/ V$ e1 H
Linux 85 2009
/ F3 J$ p, ]8 `/ xtest 30 2006
' s: c: `3 t7 ~2 B5 a+ {# P文件1与文件2的位置对输出到标准输出的结果是有影响的。例如将命令中的两个文件互换,即输入如下命令:
- ? Q& G0 v% T/ H
9 S, s) T/ d5 c/ W$ Q; |- a1 Ijoin testfile_2 testfile_1 G9 `' O# ^$ ?3 z0 M6 p% B
最终在标准输出的输出结果将发生变化,如下所示:
?! x2 N) W$ H5 B9 v o) e
8 S, Y+ ?7 e& b, A- f! E* W$ join testfile_2 testfile_1 #改变文件顺序连接两个文件 1 N4 E4 d% W! O9 r1 d8 y
Hello 2005 95 #连接后显示的内容 ) P% h- F9 S& W6 H. |' k
Linux 2009 85 9 v. t7 U! Y4 @5 e+ v# K
test 2006 30
' Y6 X# V% m4 e5 U$ m! ~
3 Z R# D# q7 j& `9 c0 f$ N |
|