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

Linux join命令

[复制链接]

该用户从未签到

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

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

该用户从未签到

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 01:22 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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