Şimdiye kadar bu soruya çok iyi cevaplar verildi, ancak hala awk
kullanmamakla bir tane özlüyorum getline
. Yana genel olarak , kullanmak için gerekli değildir getline
, ben giderdim:
awk ' f && NR==f+1; /blah/ {f=NR}' file #all matches after "blah"
veya
awk '/blah/ {f=NR} f && NR==f+1' file #matches after "blah" not being also "blah"
Mantık her zaman "falan" ın bulunduğu satırı saklamak ve sonra bir satır sonra olan satırları yazdırmaktan ibarettir.
Ölçek
Örnek dosya:
$ cat a
0
blah1
1
2
3
blah2
4
5
6
blah3
blah4
7
"Blah" dan sonra tüm satırları alın. İlkinden sonra görünüyorsa, bu başka bir "falan" basar.
$ awk 'f&&NR==f+1; /blah/ {f=NR}' a
1
4
blah4
7
Eğer "blah" içermiyorlarsa "blah" dan sonra tüm satırları alın.
$ awk '/blah/ {f=NR} f && NR==f+1' a
1
4
7
-A1
seçeneği arıyor