Bash连接命令

Infile1:

1 a

3 c

4 d

6 f

Infile2:

1 a 

2 b

5 e

6 f

7 g

8 h

我如何使用unix join命令加入这些文件以获取以下输出:

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

回答:

首先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

回到顶部