파일을 grep하고 다음 5 줄을 얻는 방법


117

라인 1,2,3,4,5에 grep대한 파일을 어떻게 19:55얻고 얻습니까?

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
제목이 훌륭해 보입니다. 아시다시피-아니, 나는 파일을 grep하지 않고 5 줄을 얻습니다. : p
Alma Do

답변:


216

원하는 :

grep -A 5 '19:55' file

에서 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
와우 와우 와우. 정말 감사합니다.
PhillipMwaniki

출력을 일정량의 줄로 제한하지 않고 일치하는 줄 이후에 모든 줄을 인쇄하는 방법이 있다면 좋을 것 입니다.
Matthias Braun

4

일부 awk버전.

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

패턴이 발견되면 c=5
If cis true로 설정 하고c


2

다음은 sed 솔루션입니다.

sed '/19:55/{
N
N
N
N
N
s/\n/ /g
}' file.txt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.