当前位置: 技术问答>linux和unix
linux 两个文本分别存有数据 根据第一个文本读第二个
来源: 互联网 发布时间:2017-03-01
本文导语: 我有个两个文本 第一个文本是sample.txt 里面每行有一个数字 有两万行 譬如: 12 13 16 58 。。 另一个文本叫data.txt 里面有几千万行的 每行两个数据 可能是 12 120398 12 as098dk1 13 2498109 14 soiu1298312 14 a...
我有个两个文本 第一个文本是sample.txt
里面每行有一个数字 有两万行 譬如:
12
13
16
58
。。
另一个文本叫data.txt 里面有几千万行的 每行两个数据 可能是
12 120398
12 as098dk1
13 2498109
14 soiu1298312
14 asd09812
15 123980kasd
16 102938kashd
57 asoiud
58 hai9823
59 hi:12309
data里面的第一列相当于一个id值 包含了sample中所有的数字
我想找出data中所有含有sample对应的数据 输出成一个比如叫result.txt
12 120398
12 as098dk1
13 2498109
16 102938kashd
58 hai9823
求教大神们怎么做啊!
里面每行有一个数字 有两万行 譬如:
12
13
16
58
。。
另一个文本叫data.txt 里面有几千万行的 每行两个数据 可能是
12 120398
12 as098dk1
13 2498109
14 soiu1298312
14 asd09812
15 123980kasd
16 102938kashd
57 asoiud
58 hai9823
59 hi:12309
data里面的第一列相当于一个id值 包含了sample中所有的数字
我想找出data中所有含有sample对应的数据 输出成一个比如叫result.txt
12 120398
12 as098dk1
13 2498109
16 102938kashd
58 hai9823
求教大神们怎么做啊!
|
awk 'NR==FNR{a[$1]=$0;next}{if($1 in a)print $1FS$2}' sample.txt data.txt
|
不知道 perl 的会不会快一点:
#!/usr/bin/perl
use strict;
use warnings;
my %samples;
open my $fh, '', 'result.txt' or die $!;
open $fh, '