Awk kullanan başka bir yaklaşım, Sundeep'in bir liste kullanma fikrine dayanır :
awk 'BEGIN { a[15] a[25] }; NR % 50 in a'
Dizideki tuşları a
yazdırmak istediğiniz çizgilere göre ayarlayın . Dizideki NR % 50
anahtarlardan biriyle eşleşen satırları yazdırın .
Performansın bir göstergesini vermek için, bu yaklaşımı zamanladım ve diğer cevaplarla karşılaştırdım, user
3 çalışma için ortalama bir zaman ayırdım.
0.276s
$ time awk 'BEGIN { a[15] a[25] }; NR % 50 in a' <(seq 1000000) > /dev/null
0.374s
$ time awk 'NR % 50 == 15 || NR % 50 == 25' <(seq 1000000) > /dev/null
0.384s
$ time perl -ne 'print if $.%50==15 || $.%50==25' <(seq 1000000) > /dev/null
0.542s
$ time perl -ne 'print if grep {$_==$.%50} (15,25)' <(seq 1000000) > /dev/null