我有两个文件:lines.txt和idx.txt
lines.txt:
aaa ggg sss
ww ee ttt
qq ee gg ccc
vvv bb b www ee
ppp dff f gg qq
pp qq ee rr tt
ww qq ee rrr
idx.txt
2
4
5
我想使用“idx.txt”从“lines.txt”文件中提取这些特定的行。文件很大(几十MB)。目前我使用的是以下行,但速度很慢:
awk 'NR=FNR{arr[FNR]=$0; next} {for(i in arr) if(i==$1) print arr[i]}' lines.txt idx.txt
我正在使用脚本生成“idx.txt”文件,因此提取行应该很快。
有人更优雅的解决方案吗?
答案 0 :(得分:2)
awk 'NR==FNR{a[$0];next} FNR in a' idx.txt lines.txt