"-A NUM"
스위치를 사용하면 각 일치 후 특정 수의 후행 줄을 인쇄할 수 있다는 것을 알고 있습니다 . 각 일치 항목 후에 특정 단어가 발견될 때까지 후행 줄을 인쇄할 수 있는지 궁금합니다. 예를 들어, "Word A"를 검색할 때 "Word A"가 포함된 행과 "Word D"가 포함된 행까지의 행을 보고 싶습니다.
문맥:
Word A
Word B
Word C
Word D
Word E
Word F
주문하다:
grep -A10 'Word A'
다음 출력이 필요합니다.
Word A
Word B
Word C
Word D
답변1
Word A
' '와 ' '(포함) Word D
사이의 줄을 인쇄하려는 것 같습니다 . sed
대신 을 사용하는 것이 좋습니다 grep
. 원하는 패턴으로 시작하고 끝나는 일련의 입력 스트림을 편집할 수 있습니다. sed
범위의 모든 줄을 인쇄하고 다른 줄은 인쇄하지 않도록 지시해야 합니다 .
sed -n -e '/Word A/,/Word D/ p' file
답변2
왜 awk를 사용하지 않습니까?
awk '/Word A/,/Word D/' filename
답변3
perl -lne 'print if /Word A/ .. /Word D/' file
또는
cat file | perl -lne 'print if /Word A/ .. /Word D/'