何百万行ものファイルがあります。また、行番号のリストもあります。数十万の行番号は連続しておらず、パターンもありません。行番号のリストでファイルの行を抽出したいと思います。Linuxでこれを効率的に達成するにはどうすればよいですか?
質問する
173 次
1 に答える
4
ファイルに行番号のリストがある場合は、次のawk
ようなことができます-
awk 'NR==FNR { a[$1];next } (FNR in a)' line_number_list.txt bigfile.txt
テスト:
$ cat bigfile.txt
line1
line2
line3
line4
line5
line6
line7
line8
line9
line10
$ cat line_number_list.txt
1
2
4
5
8
9
$ awk 'NR==FNR { a[$1];next } (FNR in a)' line_number_list.txt bigfile.txt
line1
line2
line4
line5
line8
line9
于 2013-05-28T15:41:01.847 に答える