ambil pencarian + baris berikutnya


17

Dengan grepperintah, saya menemukan teks yang saya butuhkan sebagai berikut:

grep 'C02' ~/temp/log.txt Sekarang, di mana pun saya menemukan string yang diinginkan, saya ingin mencetak garis mengikuti string yang ditemukan.

Sebagai contoh, katakanlah teks yang diinginkan adalah 'abc', dan abc ditemukan pada baris 12, saya juga ingin mencetak baris 13.


3
grep -A1 'abc' ~/temp/log.txtuntuk 1 baris konteks . Setelah pertandingan - lihat Context Line Controlsubbagian manual ( man grep)
steeldriver

1
gnu grep membuatnya mudah; posix tidak merinci bendera -A
Jeff Schaller

1
hai dan selamat datang di Stack Exchange! di SE, diharapkan Anda melakukan riset dasar sebelum datang ke sini untuk meminta bantuan. misalnya, pencarian "grep show next line" menghasilkan jawaban tidak langsung di hasil pertama dan jawaban langsung di yang kedua. apa yang sudah kamu lakukan untuk mencoba menyelesaikan masalah ini?
strugee

Jawaban:


24

Jika Anda menggunakan sistem Linux, Anda dapat mencoba:

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.

Anda dapat menggunakan awk juga sebagai:

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

1
juga,sed -n '/C02/{N; p}' ~/temp/log.txt
Sundeep
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.