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

Linux join命令

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

+ }; x- W" C# t* FLinux join命令用于将两个文件中,指定栏位内容相同的行连接起来。
" ^! u$ Y) t0 z5 v) c( m$ P
' L6 o1 B3 O) i- [9 L1 P找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。) \, M& @) [8 r% q& U
1 ~4 u8 Y) C- ]- x2 s- w$ P0 p) I7 g: {
语法
2 ?0 L* {" b9 h4 s" ^* M- X
' s$ ?% {5 d# v0 c. J& s% sjoin [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]2 K  I2 b& K8 n/ ^1 E% e- k
* _' {3 f; t# ~: X/ Z
参数:
: f) {9 h/ h: B% j6 M" G
; Y  F. P5 {# v7 K3 x-a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。. D  B6 R+ d9 ^5 ^2 E: D( v4 S
-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
: p/ b& K: w. a* R-i或--igore-case 比较栏位内容时,忽略大小写的差异。
- u* c' m1 F. V( D-o<格式> 按照指定的格式来显示结果。* }1 u. A- u8 y: _) a* X* H
-t<字符> 使用栏位的分隔字符。+ ~% h6 X# ]8 r7 l( {8 ^# H
-v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。
: |, W; ~  p( O-1<栏位> 连接[文件1]指定的栏位。8 D7 L9 T. h  C% E
-2<栏位> 连接[文件2]指定的栏位。
3 b) Z. ~' J' h# J7 ]: a9 s--help 显示帮助。  ]- c6 f6 D1 Z( ?* w* U
--version 显示版本信息。3 i! F) o' m6 l# |3 a% H% H
实例
/ _& n0 [. Q- {9 N- a' X3 {连接两个文件。, l+ Y& }# t* h1 w( w8 J

* d# i" e6 v) E7 \+ k为了清楚地了解join命令,首先通过cat命令显示文件testfile_1和 testfile_2 的内容。
( U0 V% e! ~9 _. K; R) }; ^
+ m5 r, W" j" D! h7 \+ I3 \1 u然后以默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来,在终端中输入命令:0 m, J1 \: s+ T$ U# ^# ~
/ G+ p+ g0 O3 t3 n: [
join testfile_1 testfile_2 * f/ b% T# k  r, @* @& A# e; i" n' e5 w  x
首先查看testfile_1、testfile_2 中的文件内容:
: h1 P- @9 h1 i+ ^( X
5 C& f) t7 N" p& e, J8 k+ f5 k1 |$ cat testfile_1 #testfile_1文件中的内容  
( K- H0 B- S( @# N5 SHello 95 #例如,本例中第一列为姓名,第二列为数额  
0 f) y" X6 K: sLinux 85  
- @- U: e6 P- d+ c8 ?test 30  ! g2 f8 O1 q7 K% I& V; \
cmd@hdd-desktop:~$ cat testfile_2 #testfile_2文件中的内容  # q) Q0 B. B2 h; d! N* o
Hello 2005 #例如,本例中第一列为姓名,第二列为年份  $ u% Q- M7 u8 i# ~7 T' X% v
Linux 2009  
5 a5 H, d8 h5 v! h+ y7 xtest 2006
% T  D5 f" e! V# a4 Z然后使用join命令,将两个文件连接,结果如下:
# ?# o+ e( j" C' H3 }) Z. c
% v9 E" t, X  H& [; P4 Z$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容  . W; X, z! |2 V$ O) B: _. h& K
Hello 95 2005 #连接后显示的内容  - l9 W0 x; s# e+ ]' G" |/ V$ e1 H
Linux 85 2009  
/ F3 J$ p, ]8 `/ xtest 30 2006
' s: c: `3 t7 ~2 B5 a+ {# P文件1与文件2的位置对输出到标准输出的结果是有影响的。例如将命令中的两个文件互换,即输入如下命令:
- ?  Q& G0 v% T/ H
9 S, s) T/ d5 c/ W$ Q; |- a1 Ijoin testfile_2 testfile_1  G9 `' O# ^$ ?3 z0 M6 p% B
最终在标准输出的输出结果将发生变化,如下所示:
  ?! x2 N) W$ H5 B9 v  o) e
8 S, Y+ ?7 e& b, A- f! E* W$ join testfile_2 testfile_1 #改变文件顺序连接两个文件  1 N4 E4 d% W! O9 r1 d8 y
Hello 2005 95 #连接后显示的内容  ) P% h- F9 S& W6 H. |' k
Linux 2009 85  9 v. t7 U! Y4 @5 e+ v# K
test 2006 30
' Y6 X# V% m4 e5 U$ m! ~
3 Z  R# D# q7 j& `9 c0 f$ N

该用户从未签到

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

该用户从未签到

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

该用户从未签到

2#
发表于 2021-9-29 15:27 | 只看该作者
Linux join命令
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 01:56 , Processed in 0.156250 second(s), 25 queries , Gzip On.

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

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

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