![고양이 파일에서 "KEYWORD" 뒤의 모든 줄 [중복]](https://linux55.com/image/33267/%EA%B3%A0%EC%96%91%EC%9D%B4%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%22KEYWORD%22%20%EB%92%A4%EC%9D%98%20%EB%AA%A8%EB%93%A0%20%EC%A4%84%20%5B%EC%A4%91%EB%B3%B5%5D.png)
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