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