고양이 파일에서 "KEYWORD" 뒤의 모든 줄 [중복]

고양이 파일에서 "KEYWORD" 뒤의 모든 줄 [중복]

n행에 "KEYWORD"가 있는 파일이 있습니다. n+1 행부터 끝까지 모든 행을 인쇄하는 방법은 무엇입니까?

예를 들어 여기서는 pro=int 라인 DDD 및 EEE만 원합니다.

AAA
BBB
CCC
KEYWORD
DDD
EEE

답변1

다음과 같은 방법으로 이 작업을 수행할 수 있습니다 sed.

sed '1,/^KEYWORD$/d'

이렇게 하면 스트림 시작 부분부터 "KEYWORD"(포함)까지 모든 줄이 삭제(생략)됩니다.

답변2

또 다른 옵션은 grep플래그와 함께 사용하는 것입니다 -A.

grep -A10000 KEYWORD file

여기서는 10000파일 끝까지의 줄 수를 나타내는 큰 숫자일 뿐이며, 이는 실제 일상 사용에 충분합니다.

그렇지 않으면 아래와 같이 파일의 줄 수를 매개 변수로 사용할 수 있습니다.

grep -A$(wc -l file | cut -d' ' -f1) KEYWORD file

그러나 이는 과잉일 가능성이 높습니다(주어진 대안보다 기억하기 쉽지 않습니다 sed).

답변3

sed를 사용하여 KEYWORD 일치 항목부터 파일 끝까지 인쇄한 다음 tail을 사용하여 KEYWORD 줄을 삭제합니다.

sed -n '/KEYWORD/,$p' file | tail -1

관련 정보