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

Linux join命令

[复制链接]

该用户从未签到

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

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

该用户从未签到

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-10-13 04:38 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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