我的bash脚本有问题,我想检索包含在几个文件中的信息,并将它们集中在一个文件中。
我有一个文件在这种形式,其中包含约15000行:(文件1)
1;1;A0200101C
2;2;A0200101C
3;3;A1160101A
4;4;A1160101A
5;5;A1130304G
6;6;A1110110U
7;7;A1110110U
8;8;A1030002V
9;9;A1030002V
10;10;A2120100C
11;11;A2120100C
12;12;A3410071A
13;13;A3400001A
14;14;A3385000G1
15;15;A3365070G1
我需要检索与id匹配的每行的第一条记录。
我的第二个文件是这样的,我只需要检索第三行:(文件2)
count
-------
131
(1 row)
因此,我希望能够组合(file 1)的id和(file 2)的第3行,以实现以下结果:
1;131
2;131
3;131
4;131
5;131
6;131
7;131
8;131
9;131
11;131
12;131
13;131
14;131
15;131
- 谢谢-谢谢
1条答案
按热度按时间qv7cva1a1#
一种可能的方式是:
首先,只读取
file2
的第三行,并将其保存在变量中。然后在循环中读取
file1
的每一行,提取第一个以分号分隔的字段,并将其与保存的值沿着打印。在纯粹的
awk
脚本中使用相同的基本方法而不是shell将更快更有效。在awk
中,FNR == NR
在阅读第一个给定文件时为true,在后面的文件中为false。这里有关于它的问答。)