표준 입력에서 입력을 받는 스크립트를 실행 중입니다. 이 입력은 매우 커질 수 있으므로 관심 있는 부분을 임시 파일로 추출하고 싶습니다.
첫 번째 줄에는 "[cics]"가 포함되어 있으며 해당 지점부터 다음 "["까지의 모든 내용을 임시 파일에 쓰고 싶습니다.
나는 이 작업을 수행하는 방법을 확신하기 전에는 스크립트에서 stdin을 실제로 사용한 적이 없었습니다.
답변1
다음을 사용해 보세요:
awk 'BEGIN { RS="[" } { if (index($0, "cics]") == 1) print; }'
입력을 필터링하세요. 문자는 포함되지 않습니다 [
.
awk
임시 파일을 사용하는 것보다 출력을 직접 사용하는 것이 좋습니다 .
답변2
다음을 사용하면 쉽게 이 작업을 수행할 수 있습니다 sed
.
sed -n '/\[cics\]/,/\[/p' <<-END
one
two [cics]
three
four
[five]
six
[seven]
[cics] eight
[nine]
ten
END
two [cics]
three
four
[five]
[cics] eight
[nine]