tìm kiếm grep + dòng tiếp theo


17

Với greplệnh, tôi tìm thấy văn bản tôi cần như sau:

grep 'C02' ~/temp/log.txt Bây giờ, bất cứ nơi nào tôi tìm thấy chuỗi mong muốn, tôi muốn in dòng theo chuỗi tìm thấy.

Ví dụ: giả sử văn bản mong muốn là 'abc' và abc được tìm thấy trên dòng 12, tôi cũng muốn in dòng 13.


3
grep -A1 'abc' ~/temp/log.txtcho 1 dòng bối cảnh Một trận đấu kết thúc - xem Context Line Controlphần phụ của hướng dẫn ( man grep)
Steeldo

1
gnu grep làm cho nó dễ dàng; posix không chỉ định cờ -A
Jeff Schaller

1
xin chào và chào mừng đến với Stack Exchange! trên SE, dự kiến ​​bạn sẽ thực hiện một số nghiên cứu cơ bản trước khi đến đây để được giúp đỡ. ví dụ: tìm kiếm "grep show next line" đã trả lời câu trả lời gián tiếp trong kết quả đầu tiên và câu trả lời trực tiếp trong lần thứ hai. Bạn đã làm gì để cố gắng giải quyết vấn đề này?
strugee

Câu trả lời:


24

Nếu bạn đang sử dụng hệ thống Linux, bạn có thể thử:

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.

Bạn cũng có thể sử dụng awk như:

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

1
Ngoài ra,sed -n '/C02/{N; p}' ~/temp/log.txt
Sundeep
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.