Infile1:
1 a
3 c
4 d
6 f
文件 2:
1 a
2 b
5 e
6 f
7 g
8 h
如何使用 unix 连接命令连接这些文件以获得此输出:
1 aa
2 b
3 c
4 d
5 e
6 ff
7 g
8 h
Dogbanes 的回答奏效了,但是...... 当我在此文件上应用 dogbanes 答案时:
27 27
28 22
29 37
30 15
31 21
32 13
33 18
34 24
还有这个:
27 7
28 13
29 6
30 12
31 30
32 5
33 10
34 28
他们不加入:
27 27
27 7
28 13
28 22
29 37
29 6
30 12
30 15
31 21
31 30
32 13
32 5
33 10
33 18
34 24
34 28
第二种情况是制表符分隔,所以我使用了-t\t
最佳答案
首先排序
两个文件。然后使用 join
加入两个文件的第一个字段。如果您想要删除空格并将 a a
转换为 aa
,您还需要通过 sed
传输输出。如下所示:
$ join -t " " -1 1 -2 1 -a 1 -a 2 <(sort file1) <(sort file2) | sed 's/ \([a-z]\) / \1/g'
1 aa
2 b
3 c
4 d
5 e
6 ff
7 g
8 h
关于linux - Bash 加入命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8849681/