표준 입력에서 데이터 블록 복사 [닫기]

표준 입력에서 데이터 블록 복사 [닫기]

표준 입력에서 입력을 받는 스크립트를 실행 중입니다. 이 입력은 매우 커질 수 있으므로 관심 있는 부분을 임시 파일로 추출하고 싶습니다.

첫 번째 줄에는 "[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]

관련 정보