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

Linux join命令

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

" Y- _# t8 ]. ^. FLinux join命令用于将两个文件中,指定栏位内容相同的行连接起来。! u- h& }% |) }, v) R
8 k6 }- [6 R) X( A
找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。7 l5 b, o. b8 r1 D6 }
/ N6 @, Y2 Q7 ~; a' D2 L3 ], Y
语法
" l! q" E6 M. I6 |
9 @6 _# ?3 Y) B# X0 }% M4 Y4 Qjoin [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
1 S. |; \1 i4 J) B7 h2 B
9 t/ P7 n, W" }' x参数:  M" n( j: R3 d; g) b+ h8 }
  B$ ^7 L, r. v4 a3 f5 L: Y+ @
-a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。; H: J6 v' d4 Q- U! z- |) V2 {
-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。1 i, E% V/ x" a3 N5 a$ A4 O
-i或--igore-case 比较栏位内容时,忽略大小写的差异。
) s9 \9 r8 N/ o- R6 k-o<格式> 按照指定的格式来显示结果。
8 \$ K) {! z' P) \-t<字符> 使用栏位的分隔字符。& N) _7 C1 ?$ `$ U% M9 p
-v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。; K& O/ }5 m( o
-1<栏位> 连接[文件1]指定的栏位。
; H5 {# {9 j' t- ~$ s, k-2<栏位> 连接[文件2]指定的栏位。$ h1 m2 B# R+ `5 f
--help 显示帮助。
9 R3 ~; L. Y5 i6 o# Y--version 显示版本信息。
$ Z$ F- l) w' Q  W0 |8 w实例' X  W- P0 |! V3 g" }
连接两个文件。% o6 j: v: c6 k

3 V* s/ N7 Y- v) i' i2 z4 Z为了清楚地了解join命令,首先通过cat命令显示文件testfile_1和 testfile_2 的内容。- K! @% Z/ X& @0 t8 ^2 T
! B8 F) P) R/ R/ z$ E; z! B
然后以默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来,在终端中输入命令:6 A9 Z: ]) o9 j

, l% m  V" A! Y! ujoin testfile_1 testfile_2
0 U, ]9 I* f3 P% A& S0 [首先查看testfile_1、testfile_2 中的文件内容:' v1 X. n6 o6 R3 X

! d; p5 J: P! s3 T$ cat testfile_1 #testfile_1文件中的内容  
! J- R+ o2 r' q, y3 h1 \  oHello 95 #例如,本例中第一列为姓名,第二列为数额  
! ~8 _7 o4 o4 CLinux 85  
6 e# O- Q, h: ktest 30  
/ v5 n0 J+ _8 ucmd@hdd-desktop:~$ cat testfile_2 #testfile_2文件中的内容  
; `: Z' n( c4 S7 K: {" B( ]. LHello 2005 #例如,本例中第一列为姓名,第二列为年份  ' V" B+ x' y; F. v5 N8 }% P
Linux 2009  
$ E7 j' u- m4 }( [1 ltest 2006
2 ]) q5 F; n9 s; p然后使用join命令,将两个文件连接,结果如下:
- C# t. D) }4 G3 z. r9 c/ w, E* p: {) M- b% I3 L
$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容  # _' K/ C' V: e; L( ~9 o
Hello 95 2005 #连接后显示的内容  
' U5 a: a4 i: \+ f7 LLinux 85 2009  
$ {% w. Z- R5 {% Stest 30 2006 ! k! l4 f! O$ ]6 p( H
文件1与文件2的位置对输出到标准输出的结果是有影响的。例如将命令中的两个文件互换,即输入如下命令:
5 n; E& z+ E% i. o
5 Y  _  {, {  r3 Z5 N& F2 Djoin testfile_2 testfile_1
# ]/ `' s( c; z+ X* U1 |最终在标准输出的输出结果将发生变化,如下所示:/ a5 Q4 p) X2 G/ H4 O
. w* y( t' T! n- M/ D
$ join testfile_2 testfile_1 #改变文件顺序连接两个文件  
5 `8 v0 w$ ]6 m4 y$ U+ ]4 ^Hello 2005 95 #连接后显示的内容  2 [! _/ J  `- c) h
Linux 2009 85  . ?+ f% ^0 o4 c% p% l) `
test 2006 30 * v0 [1 A! d7 g+ \* F. |# @4 L$ ^

; ~. a: E: n. J0 L  L- }. q0 Y3 E! ]

该用户从未签到

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 03:09 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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