특정 문자 구간 삭제 방법 어떻게 할 수 있을까요?

sejin1310의 이미지

아무리 찾아봐도 sed / awk 로 특정 문자 앞 까지의 구간을 삭제 하는 방법을 찾지 못하겠어요

- ABC
+ ROUTED LB + STYLE 0 ( 1122223 11231 ) ( * 223311 )
NEW LB 1111 + STYLE 0 ( 1111111 11111 ) ( 111111 11111)
NEW LB 1111 + STYLE 0 ( 1111111 11111 ) ( 111111 11111) ;

여기서 + ROUTED 부터 ; 앞에까지 삭제를 하고 문서를 저장하고 싶습니다.

- ABC
(#삭제 구간 START) + ROUTED LB + STYLE 0 ( 1122223 11231 ) ( * 223311 )
NEW LB 1111 + STYLE 0 ( 1111111 11111 ) ( 111111 11111)
NEW LB 1111 + STYLE 0 ( 1111111 11111 ) ( 111111 11111) (#삭제 구간 STOP) ;

결과가 이렇게 나오게 하고 싶습니다.
- ABC
;

알려주시면 감사하겠습니다.

Prentice의 이미지

안녕하세요, 삭제 구간은 여러 번 나올 수도 있나요?

+ ROUTED는 항상 줄 시작에 오나요?

전체 파일 크기는 어느 정도일까요?

ymir의 이미지

$ cat in.txt 
- ABC
+ ROUTED LB + STYLE 0 ( 1122223 11231 ) ( * 223311 )
NEW LB 1111 + STYLE 0 ( 1111111 11111 ) ( 111111 11111)
NEW LB 1111 + STYLE 0 ( 1111111 11111 ) ( 111111 11111) ;
+ ROUTED LB + STYLE 0 ( 1122223 11231 ) ( * 223311 )
NEW LB 1111 + STYLE 0 ( 1111111 11111 ) ( 111111 11111)
NEW LB 1111 + STYLE 0 ( 1111111 11111 ) ( 111111 11111) ;
$ cat in.txt | sed -z 's/+ ROUTED[^;]*//g'
- ABC
;
;

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』