|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
" Y- _# t8 ]. ^. FLinux join命令用于将两个文件中,指定栏位内容相同的行连接起来。! u- h& }% |) }, v) R
8 k6 }- [6 R) X( A
找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。7 l5 b, o. b8 r1 D6 }
/ N6 @, Y2 Q7 ~; a' D2 L3 ], Y
语法
" l! q" E6 M. I6 |
9 @6 _# ?3 Y) B# X0 }% M4 Y4 Qjoin [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
1 S. |; \1 i4 J) B7 h2 B
9 t/ P7 n, W" }' x参数: M" n( j: R3 d; g) b+ h8 }
B$ ^7 L, r. v4 a3 f5 L: Y+ @
-a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。; H: J6 v' d4 Q- U! z- |) V2 {
-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。1 i, E% V/ x" a3 N5 a$ A4 O
-i或--igore-case 比较栏位内容时,忽略大小写的差异。
) s9 \9 r8 N/ o- R6 k-o<格式> 按照指定的格式来显示结果。
8 \$ K) {! z' P) \-t<字符> 使用栏位的分隔字符。& N) _7 C1 ?$ `$ U% M9 p
-v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。; K& O/ }5 m( o
-1<栏位> 连接[文件1]指定的栏位。
; H5 {# {9 j' t- ~$ s, k-2<栏位> 连接[文件2]指定的栏位。$ h1 m2 B# R+ `5 f
--help 显示帮助。
9 R3 ~; L. Y5 i6 o# Y--version 显示版本信息。
$ Z$ F- l) w' Q W0 |8 w实例' X W- P0 |! V3 g" }
连接两个文件。% o6 j: v: c6 k
3 V* s/ N7 Y- v) i' i2 z4 Z为了清楚地了解join命令,首先通过cat命令显示文件testfile_1和 testfile_2 的内容。- K! @% Z/ X& @0 t8 ^2 T
! B8 F) P) R/ R/ z$ E; z! B
然后以默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来,在终端中输入命令:6 A9 Z: ]) o9 j
, l% m V" A! Y! ujoin testfile_1 testfile_2
0 U, ]9 I* f3 P% A& S0 [首先查看testfile_1、testfile_2 中的文件内容:' v1 X. n6 o6 R3 X
! d; p5 J: P! s3 T$ cat testfile_1 #testfile_1文件中的内容
! J- R+ o2 r' q, y3 h1 \ oHello 95 #例如,本例中第一列为姓名,第二列为数额
! ~8 _7 o4 o4 CLinux 85
6 e# O- Q, h: ktest 30
/ v5 n0 J+ _8 ucmd@hdd-desktop:~$ cat testfile_2 #testfile_2文件中的内容
; `: Z' n( c4 S7 K: {" B( ]. LHello 2005 #例如,本例中第一列为姓名,第二列为年份 ' V" B+ x' y; F. v5 N8 }% P
Linux 2009
$ E7 j' u- m4 }( [1 ltest 2006
2 ]) q5 F; n9 s; p然后使用join命令,将两个文件连接,结果如下:
- C# t. D) }4 G3 z. r9 c/ w, E* p: {) M- b% I3 L
$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容 # _' K/ C' V: e; L( ~9 o
Hello 95 2005 #连接后显示的内容
' U5 a: a4 i: \+ f7 LLinux 85 2009
$ {% w. Z- R5 {% Stest 30 2006 ! k! l4 f! O$ ]6 p( H
文件1与文件2的位置对输出到标准输出的结果是有影响的。例如将命令中的两个文件互换,即输入如下命令:
5 n; E& z+ E% i. o
5 Y _ {, { r3 Z5 N& F2 Djoin testfile_2 testfile_1
# ]/ `' s( c; z+ X* U1 |最终在标准输出的输出结果将发生变化,如下所示:/ a5 Q4 p) X2 G/ H4 O
. w* y( t' T! n- M/ D
$ join testfile_2 testfile_1 #改变文件顺序连接两个文件
5 `8 v0 w$ ]6 m4 y$ U+ ]4 ^Hello 2005 95 #连接后显示的内容 2 [! _/ J `- c) h
Linux 2009 85 . ?+ f% ^0 o4 c% p% l) `
test 2006 30 * v0 [1 A! d7 g+ \* F. |# @4 L$ ^
; ~. a: E: n. J0 L L- }. q0 Y3 E! ] |
|