Pendekatan lain menggunakan awk, berdasarkan ide Sundeep untuk menggunakan daftar:
awk 'BEGIN { a[15] a[25] }; NR % 50 in a'
Tetapkan kunci dalam array a
berdasarkan pada garis yang ingin Anda cetak. Cetak baris yang NR % 50
cocok dengan salah satu kunci dalam array.
Untuk memberikan beberapa indikasi kinerja, saya menghitung waktu pendekatan ini dan membandingkannya dengan jawaban lain, dengan mengambil rata-rata user
waktu selama 3 kali proses.
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,384d
$ time perl -ne 'print if $.%50==15 || $.%50==25' <(seq 1000000) > /dev/null
0,542-an
$ time perl -ne 'print if grep {$_==$.%50} (15,25)' <(seq 1000000) > /dev/null