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

Linux join命令

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
5 e& C- X/ |. O7 ~# A+ i
Linux join命令用于将两个文件中,指定栏位内容相同的行连接起来。
8 n% R  @& w( k3 i1 v" g9 N+ b. I" C2 t- b  H8 k% t7 j# ~+ U
找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。; n5 K  [% }' R7 N
- ~; n1 Z. Z+ _- _8 _4 d- n# C
语法
5 [! d0 d4 |, M; d! s( y2 S0 a& [* e! q+ I: M! o  C0 p- S
join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
' F. K* R7 E9 x4 f$ s2 k/ j
" X" S  j% R) b6 v参数:# o* Y2 T; i# \

+ H7 g1 C7 L9 x4 Z6 s# _% }6 C-a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。
# S0 s: _8 J3 X- W7 S$ r-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。# J! L9 X9 p6 A2 X
-i或--igore-case 比较栏位内容时,忽略大小写的差异。
1 J# `: D& [7 W& I3 z6 A-o<格式> 按照指定的格式来显示结果。7 H2 ?% r0 u' |' Q! X" Z- i
-t<字符> 使用栏位的分隔字符。& h% ]7 ^* D+ ^. _; [
-v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。
% u9 R! C+ l" R% U$ v* ~-1<栏位> 连接[文件1]指定的栏位。
0 t0 L# Z9 r9 u* i$ m-2<栏位> 连接[文件2]指定的栏位。+ p( `2 l8 P& Q% z6 t. U' T
--help 显示帮助。6 t( n* H4 [6 f" H/ H5 |
--version 显示版本信息。( H+ t! A" c5 c3 X
实例
6 j) z; o1 b# a5 M: Z- |% |连接两个文件。
: }$ M7 k- Z, ]) C- P7 P8 u5 M& I4 M" B" [0 X, K8 }
为了清楚地了解join命令,首先通过cat命令显示文件testfile_1和 testfile_2 的内容。
& r0 t- |0 y) g4 n6 Q( W# E  r4 Q6 W9 r
然后以默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来,在终端中输入命令:
- ~) H+ ]% B* k% F/ T/ t! A: t0 Z/ C& s8 ?; {9 V  T8 b
join testfile_1 testfile_2 . l* A, g6 \0 u6 M2 u
首先查看testfile_1、testfile_2 中的文件内容:/ O1 a- r. T' v, g
8 o0 k* ?! G1 d. a! y" Q& Q* u# ]% X
$ cat testfile_1 #testfile_1文件中的内容  
8 L3 y7 u9 E: k; v  @. a/ W9 ?! [; K  z/ oHello 95 #例如,本例中第一列为姓名,第二列为数额  
, W8 K; J1 z9 {7 KLinux 85  
, c$ t/ P* n$ I, u: M1 Ntest 30  
5 c% l  }- B) L6 i" hcmd@hdd-desktop:~$ cat testfile_2 #testfile_2文件中的内容  
+ a& b+ [7 W+ ~7 n1 z$ D3 sHello 2005 #例如,本例中第一列为姓名,第二列为年份  
; |- h; K7 ?( p1 I4 KLinux 2009  8 F+ C: k0 k/ D  L" s
test 2006
: V, V* R  ?, c- J) k! ~然后使用join命令,将两个文件连接,结果如下:% a& I" ?' o9 f5 H3 K, a
3 ?9 ^! K3 y' S# i
$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容  ) {8 i1 R( ~2 J9 |7 |8 r
Hello 95 2005 #连接后显示的内容  3 T- @" o7 P8 l% x  }3 R* ?
Linux 85 2009  
3 H4 j" g* s1 i& i% C+ ], z1 itest 30 2006
6 K/ L! ^% E& Z  X文件1与文件2的位置对输出到标准输出的结果是有影响的。例如将命令中的两个文件互换,即输入如下命令:% D* b0 g: P: w2 ]: m5 W0 {

; U& E6 v* Y- i$ \: \join testfile_2 testfile_1
( O, P1 F; ^# m: ~7 t最终在标准输出的输出结果将发生变化,如下所示:- y0 T& }- V1 g8 [7 E' Z$ l

' x3 F$ b2 n+ s3 J2 H$ join testfile_2 testfile_1 #改变文件顺序连接两个文件  / N( t  q: t, p- V3 q+ T
Hello 2005 95 #连接后显示的内容  
% o# o8 k4 c# W( c9 C2 [Linux 2009 85  
$ }7 Y5 P9 N: r9 \' L# O7 dtest 2006 30 # A5 p  g$ z  f( h; {
4 x5 D$ T: h! w2 A

该用户从未签到

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-8-11 21:13 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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