패턴으로 시작하는 줄 병합

패턴으로 시작하는 줄 병합

sed, grep 및 awk를 이해하려고 노력 중이지만 다음 문제에 직면했습니다. sed를 사용하여 두 패턴(시작 및 끝) 사이의 모든 줄을 가져온 후 다음 로그가 표시됩니다.

START
tag: text info text text info text
    text info texttext info text
    text info texttext info text
    text info texttext info text

other_tag: text info text text info text
    text info text text info text text info text
    text info text text info text text info text
END
START
tag: text info text text info text
    text info text text info text
    text info text text info text
other_tag: text info text text info text
    text info text text info text text info text
    text info text text info text text info text
END

다음과 같이 시작 [탭]을 제거하여 모든 행을 상위 행에 병합하고 싶습니다.

START
tag: text info text text info text text info text text info text text info text text info text text info text text info text
other_tag: text info text text info text text info text text info text text info text text info text text info text text info text
END
START
tag: text info text text info text text info text text info text text info text text info text
other_tag: text info text text info text text info text text info text text info text text info text text info text text info text
END

누구든지 나를 도와줄 수 있나요? 감사해요!

답변1

아마도 계속해서 사용해야 할 것 같습니다.sed. 사용질소다음 입력 줄을 패턴 공간에 추가한 다음 일치시킬 수 있습니다.\N두 줄 사이.

다음을 참조할 수 있습니다.

sed ':a; N; $!b a; s/\n\s\{1,\}/ /g'

관련 정보