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

Linux join命令

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

. F! U- u( [) u: \  o2 L. kLinux join命令用于将两个文件中,指定栏位内容相同的行连接起来。
# W* [  ]% [  Q; t' [
, _8 e  J" A  u3 Y- q5 w2 A找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
: e; E+ c* p6 L9 \, ~& q
2 Q7 |" o, o" J语法
4 z/ _" s8 q* e5 _$ a$ ~
  o8 l7 p" k! ~. \1 S# u/ Kjoin [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
8 D% J- y( l! j! \
/ R+ Q9 l% x/ c4 c: _, n: p! w5 f. s参数:. j9 v- c2 J2 I

  [  U; p" I0 R" S1 M! h-a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。4 l8 c6 U9 |# O" {* v1 b% f  w
-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。4 G9 m# i4 P- G4 v) E
-i或--igore-case 比较栏位内容时,忽略大小写的差异。+ U( r" t: x! C8 T% O
-o<格式> 按照指定的格式来显示结果。
" |9 I/ R, ~# `  ^8 H: ?-t<字符> 使用栏位的分隔字符。
' I' w5 o# j9 g5 E$ c+ C-v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。2 g/ {. ^" h0 t: ]; u* o# i+ i
-1<栏位> 连接[文件1]指定的栏位。5 E% L- Y* `) B9 O3 ]/ u
-2<栏位> 连接[文件2]指定的栏位。
- K6 x  \! w- Z3 J8 H--help 显示帮助。/ v0 \# u* _$ o( L. V" k
--version 显示版本信息。
& ~( ~7 D' [! ^) O& H! T实例
4 J$ K: `1 A7 |+ G连接两个文件。2 y  ~) ~2 {- P% L5 P4 A% i

9 \! e$ g+ A; O% `* J为了清楚地了解join命令,首先通过cat命令显示文件testfile_1和 testfile_2 的内容。
( F3 n4 y! g- l% ]8 A" x$ O7 l/ j. u) E. B5 ^! \' {
然后以默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来,在终端中输入命令:
. Y, @8 F3 M2 H' p7 a
) u7 F4 v% C: q4 G9 Ijoin testfile_1 testfile_2 / [3 i* H. t- x+ g- i1 I' I5 k
首先查看testfile_1、testfile_2 中的文件内容:
' o, \5 p' Q, A3 g  a7 i
& u2 c) e5 z$ r$ cat testfile_1 #testfile_1文件中的内容    u+ N' N0 O1 e- c' [
Hello 95 #例如,本例中第一列为姓名,第二列为数额  
+ C% h0 `5 @7 w" _& B: CLinux 85  1 k: d8 \& ]; V; }" M
test 30  7 I2 f0 v5 H$ z2 q
cmd@hdd-desktop:~$ cat testfile_2 #testfile_2文件中的内容  
8 Q( C3 C2 _; V9 \* |) [Hello 2005 #例如,本例中第一列为姓名,第二列为年份  
% T0 `/ g7 o; Z, X$ h( \Linux 2009  
& k6 M6 N3 n' F4 Ttest 2006 # G2 c" P# q1 Z4 e- O
然后使用join命令,将两个文件连接,结果如下:
& a4 @$ A% W8 K/ T& y8 i: I. E, o9 p. F( r% `6 Z. F' ~$ L/ w
$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容  
8 `. ^9 b. o  B) ^Hello 95 2005 #连接后显示的内容  
8 m6 c; f( ^: ?- N( a- NLinux 85 2009  
6 `+ x" P+ n3 M$ a. Htest 30 2006
# _+ N* I. O6 l& @2 ?) @* p, Q文件1与文件2的位置对输出到标准输出的结果是有影响的。例如将命令中的两个文件互换,即输入如下命令:
* |2 W- u) M9 ?& ]( A/ ?4 E  }* v) x* ?; l2 k. K! \9 I
join testfile_2 testfile_1
5 G  t' R- c% X4 m9 `- U5 n最终在标准输出的输出结果将发生变化,如下所示:
" ^) a) I. o0 \# h1 R& ~# d
$ R* k" @0 B% @8 D0 y# d; x$ join testfile_2 testfile_1 #改变文件顺序连接两个文件  ) ~) V3 U! T' U* Z- M
Hello 2005 95 #连接后显示的内容  
; K) g  o2 u" {$ k3 _% y+ T) z7 F' ]Linux 2009 85  
3 N. y% m4 x3 q( g; R1 xtest 2006 30
. N# H0 \9 D1 B2 r( I0 H1 O& a+ x" V
% |/ `3 S4 g8 v& U6 S  g

该用户从未签到

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 00:28 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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