3

何百万行ものファイルがあります。また、行番号のリストもあります。数十万の行番号は連続しておらず、パターンもありません。行番号のリストでファイルの行を抽出したいと思います。Linuxでこれを効率的に達成するにはどうすればよいですか?

4

1 に答える 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 に答える