|
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
|
|