grep arama + sonraki satır


19

grepKomut ile ihtiyacım olan metni şu şekilde buldum:

grep 'C02' ~/temp/log.txt Şimdi, istediğiniz dizeyi nerede bulursam bulursam, bulunan dizgeyi izleyen satırı yazdırmak isterim.

Örneğin, istenen metnin 'abc' olduğunu ve abc'nin 12. satırda bulunduğunu varsayalım, 13. satırı da yazdırmak istiyorum.


3
grep -A1 'abc' ~/temp/log.txtiçin 1 bağlam hattı A maçında fter - bakınız Context Line Controlkılavuzu (alt bölümüne man grep)
steeldriver

1
gnu grep bunu kolaylaştırır; posix -A bayrağını belirtmez
Jeff Schaller

1
merhaba ve Stack Exchange hoş geldiniz! SE'de, yardım için buraya gelmeden önce bazı temel araştırmalar yapmanız bekleniyor. örneğin, "grep show next line" araması ilk sonuçta dolaylı bir cevap, ikincisinde ise doğrudan bir cevap döndürdü. bu sorunu zaten çözmeye çalışmak için ne yaptın?
Strugee

Yanıtlar:


26

Linux sistemi kullanıyorsanız deneyebilirsiniz:

grep -A1 "C02" ~/temp/log.txt


OPTIONS
       -A NUM, --after-context=NUM
              Print NUM lines of trailing context after matching lines.  Places a line containing -- between contiguous groups of matches.
       -B NUM, --before-context=NUM
              Print NUM lines of leading context before matching lines.  Places a line containing -- between contiguous groups of matches.
       -C NUM, --context=NUM
              Print NUM lines of output context.  Places a line containing -- between contiguous groups of matches.

Awk komutunu şu şekilde de kullanabilirsiniz:

awk '/C02/{print;getline;print}' ~/temp/log.txt

1
ayrıca,sed -n '/C02/{N; p}' ~/temp/log.txt
Sundeep
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.