Bash连接命令
Infile1:
1 a3 c
4 d
6 f
Infile2:
1 a 2 b
5 e
6 f
7 g
8 h
我如何使用unix join命令加入这些文件以获取以下输出:
1 aa2 b
3 c
4 d
5 e
6 ff
7 g
8 h
Dogbanes答案有效,但是…当我在此文件上应用Dogbanes答案时:
27 2728 22
29 37
30 15
31 21
32 13
33 18
34 24
和这个:
27 728 13
29 6
30 12
31 30
32 5
33 10
34 28
他们不加入:
27 2727 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
回答:
首先sort
两个文件。然后使用join
联接两个文件的第一个字段。sed
如果要删除空间并转换a
a为,则还需要通过管道传递输出aa
。如下所示:
$ 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
以上是 Bash连接命令 的全部内容, 来源链接: utcz.com/qa/399360.html