Linux 合并文件命令用法(linux合并文件的命令)

join命令是用来将两个文件(或文本流)中的一列或多列进行匹配合并,输出合并后的结果。

语法:

join [选项] 文件1 文件2

常用选项:

- -a FILENUM :列出文件 1 或 2 中存在,但并不是同时存在的行。

- -e STRING :指定当左侧或右侧没有匹配时该列输出的字符串。

- -i :忽略大小写。

- -t CHAR :指定文件分隔符,默认使用制表符。

示例:

假设有两个文件file1和file2,内容如下:

file1:

1 aaa

2 bbb

3 ccc

5 eee

file2:

1 zzz

2 xxx

3 yyy

4 www

1. 按照第一列合并:

join file1 file2

输出:

1 aaa zzz

2 bbb xxx

3 ccc yyy

可以看到,只有第一列相同的行才被合并了。

2. 按照第二列合并:

join -11 -21 file1 file2

参数-11和-21指定待合并文件的哪一列进行匹配。注意,必须用双破折号。

输出:

aaa 1 zzz

bbb 2 xxx

ccc 3 yyy

3. 列出没有匹配的行:

join -a1 file1 file2

输出:

1 aaa zzz

2 bbb xxx

3 ccc yyy

5 eee

可以看到,文件1中只有一行,而文件2中有4行。由于文件1中没有第四行,因此该行被列出来了。

4. 指定列分隔符:

假设文件file1和file2的分隔符是逗号,可以使用-t选项指定:

join -t, file1 file2

注意,-t后需要紧跟分隔符,不能有空格。