Làm thế nào để bạn grep một tập tin và nhận được 5 dòng tiếp theo


117

Làm cách nào để tôi grepgửi tệp 19:55và nhận Dòng 1,2,3,4,5?

2013/10/08 19:55:27.471
Line 1
Line 2
Line 3
Line 4
Line 5

2013/10/08 19:55:29.566
Line 1
Line 2
Line 3
Line 4
Line 5

2
Tiêu đề của bạn trông rực rỡ. Bạn biết đấy - không, tôi không grep một tập tin và nhận được 5 dòng: p
Alma Do

Câu trả lời:


216

Bạn muốn:

grep -A 5 '19:55' file

Từ man grep:

Context Line Control

-A NUM, --after-context=NUM

Print NUM lines of trailing context after matching lines.  
Places a line containing a gup separator (described under --group-separator) 
between contiguous groups of matches.  With the -o or --only-matching
option, this has no effect and a warning is given.

-B NUM, --before-context=NUM

Print NUM lines of leading context before matching lines.  
Places a line containing a group separator (described under --group-separator) 
between contiguous groups of matches.  With the -o or --only-matching
option, this has no effect and a warning is given.

-C NUM, -NUM, --context=NUM

Print NUM lines of output context.  Places a line containing a group separator
(described under --group-separator) between contiguous groups of matches.  
With the -o or --only-matching option,  this  has  no effect and a warning
is given.

--group-separator=SEP

Use SEP as a group separator. By default SEP is double hyphen (--).

--no-group-separator

Use empty string as a group separator.

2
Tuyệt tuyệt tuyệt. Cảm ơn rất nhiều.
PhillipMwaniki

Sẽ thật tuyệt nếu có một cách để không giới hạn đầu ra ở một số lượng dòng nhất định nhưng in tất cả các dòng sau khi phù hợp.
Matthias Braun

4

Một số awkphiên bản.

awk '/19:55/{c=5} c-->0'
awk '/19:55/{c=5} c && c--'

Khi tìm thấy mẫu, đặt c=5
If clà đúng, in và giảm số lượngc


2

Đây là một giải pháp sed:

sed '/19:55/{
N
N
N
N
N
s/\n/ /g
}' file.txt
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.