it-swarm-ko.tech

다른 특정 경기까지 각 grep 경기 후 줄을 표시하는 방법은 무엇입니까?

"-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
51
Meysam

'Word A'와 'Word D'(포함) 사이에 줄을 인쇄하려는 것 같습니다. sed 대신 grep을 (를) 사용하는 것이 좋습니다. 원하는 패턴으로 시작하고 끝나는 입력 스트림 범위를 편집 할 수 있습니다. sed에게 범위 내의 모든 줄을 인쇄하고 다른 줄은 인쇄하지 말라고 지시해야합니다.

sed -n -e '/Word A/,/Word D/ p' file
81
saeedn

왜 awk를 사용하지 않습니까?

awk '/Word A/,/Word D/' filename
18
cesar
Perl -lne 'print if /Word A/ .. /Word D/' file

또는

cat file | Perl -lne 'print if /Word A/ .. /Word D/'
9
vinian