找回密码
 注册
关于网站域名变更的通知
查看: 432|回复: 3
打印 上一主题 下一主题

Linux join命令

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-9-29 14:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

$ \, S0 S9 f3 c3 jLinux join命令用于将两个文件中,指定栏位内容相同的行连接起来。
, @( p" v# E5 t# G+ I0 Y1 o4 a1 ]$ Q. v3 l& c1 ?0 c
找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
9 b: [+ _3 o& V4 ~* i5 O7 ]" G3 V: Q, \; t! A4 D; u' U
语法
  U9 B/ P+ Q, ~" j# A% D, d6 }  }6 H2 a$ b$ r
join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
& b  d, y: H# }/ q; I
8 m6 d) I. m1 e1 c! j参数:
6 ?5 A- y4 W$ f8 ?9 E( @4 U/ j9 g1 \8 Q/ F- R/ N
-a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。3 G# c9 r% h: s1 d
-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
; Z0 o) b+ t1 S8 ]+ K9 K-i或--igore-case 比较栏位内容时,忽略大小写的差异。" y* M" d, S! U
-o<格式> 按照指定的格式来显示结果。! o: E1 C8 k1 B  @
-t<字符> 使用栏位的分隔字符。) e' N% i# F, J5 d: G. `  Y
-v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。$ Q, R, ?8 D4 x( R
-1<栏位> 连接[文件1]指定的栏位。
2 D  [9 j* \! z) b6 |  F* ?-2<栏位> 连接[文件2]指定的栏位。# y2 ]1 x2 r( ^/ o
--help 显示帮助。/ @- u) M1 [7 h% i( x
--version 显示版本信息。
& L( L" c; D/ b& J6 z: {实例
# w3 @; k* l8 ^  M' t  B$ y; L/ R8 }连接两个文件。
- [& F. U7 z; t! \6 c9 J$ Y9 [- h) n8 q5 M0 ?
为了清楚地了解join命令,首先通过cat命令显示文件testfile_1和 testfile_2 的内容。% Y; ~" I" S8 t) _& [4 K. Y

  p! d" e( L. `# D2 M, u' s. F) M0 }然后以默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来,在终端中输入命令:/ N& o+ w: R5 C  r% m$ r& O
5 [: s7 Z& E2 Y- Q& e
join testfile_1 testfile_2 # j  R+ ~  k' g4 x* \5 e1 Y
首先查看testfile_1、testfile_2 中的文件内容:
; S# |4 Z. q% q# i& Q* D* ]; h' f( V4 Z3 {( D
$ cat testfile_1 #testfile_1文件中的内容  
' y8 m$ r: O  p& i+ `" h$ PHello 95 #例如,本例中第一列为姓名,第二列为数额  
: S' A4 Z: j, O: n/ x6 a$ A% SLinux 85  
" F6 I, j" A2 U9 U2 wtest 30  
* T: q8 e7 U: n1 }cmd@hdd-desktop:~$ cat testfile_2 #testfile_2文件中的内容  ; Y( a5 {9 i" U9 L9 ]* G
Hello 2005 #例如,本例中第一列为姓名,第二列为年份  ) J+ p6 k4 e' U- y1 E1 [  e3 h: L
Linux 2009  
7 F( F8 F3 `# ?" L& o8 V% ntest 2006 4 J+ ~0 d. M$ u$ S
然后使用join命令,将两个文件连接,结果如下:
! Q. D9 ^- s7 Y) a; c' C7 @  M! i! l5 O6 Q$ e
$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容  4 R" k' g, f3 F* v$ A4 @  N
Hello 95 2005 #连接后显示的内容  ! @+ P4 V7 W6 v  O# h; B" o7 C
Linux 85 2009  
  i/ o# F. ], Y, [, f9 V, Qtest 30 2006 * x! ?' f+ U  b1 D. B
文件1与文件2的位置对输出到标准输出的结果是有影响的。例如将命令中的两个文件互换,即输入如下命令:0 b( w! W. e: m( |4 R

" b, F) _2 U5 L2 |- c% Z$ s' Zjoin testfile_2 testfile_13 c; K" W" L6 X3 G: A0 _
最终在标准输出的输出结果将发生变化,如下所示:
" g( `' Y9 W' A- S' I  j; m- D2 {* x5 f) {3 _0 s
$ join testfile_2 testfile_1 #改变文件顺序连接两个文件  & a8 u$ P4 C& y* p$ m
Hello 2005 95 #连接后显示的内容  & s2 c+ C; E, Y  \
Linux 2009 85  
3 a: y1 h/ q+ ], M, `, V+ xtest 2006 30
0 L- m( B% C5 G6 X( ~5 i! k( W2 r% z, Q( ^2 ]  b( |6 X1 n6 }

该用户从未签到

2#
发表于 2021-9-29 15:27 | 只看该作者
Linux join命令

该用户从未签到

3#
发表于 2021-9-29 16:22 | 只看该作者
Linux join命令用于将两个文件中,指定栏位内容相同的行连接起来

该用户从未签到

4#
发表于 2021-9-29 16:23 | 只看该作者
找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 02:27 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表