linux命令--join、paste
1、join
主要是在处理『两个档案当中,有 "相同数据" 癿那一行,才将他加在一起』癿意思。
格式:join [-ti12] file1 file2
选项与参数:
-t :join 默认以空格符分隔数据,幵且比对『第一个字段』的数据, 如果两个档案相同,则将两笔数据联成一行,且第一个字段放在第一个!
-i :忽略大小写的差异;
-1 :这个是数字的1 ,代表『第一个档案要用那个字段来分析』的意思;
-2 :代表『第二个档案要用那个字段来分析』的意思。
例子:
cat 1.txt
1 tom 12 160
2 jack 18 182
3 mary 16 168
cat 2.txt
tom 50
jack 75
mary 45
命令:join -1 2 -2 1 1.txt 2.txt
tom 1 12 160 50
jack 2 18 182 75
mary 3 16 168 45
2、paste
相对于 join 必须要比对两个档案的数据相关性, paste 就直接『将两行贴在一起,且中间以 [tab] 键隔开』。
格式:paste [-d] file1 file2
选项不参数:
-d :后面可以接分隔字符。预设是以 [tab]来分隔的!
- :如果 file 部分写成 - ,表示来自 standard input 的资料的意思。
cat 1.txt
tom 12
jack 18
mary 16
cat 2.txt
160
182
168
cat 3.txt
50
75
45
命令:cat 3.txt |paste 1.txt 2.txt -
tom 12 160 50
jack 18 182 75
mary 16 168 45