일치 후 텍스트 바꾸기

일치 후 텍스트 바꾸기
aaaaaaaaa   
bbbbbbbbb   
-th ccccccccc_RD \  

DDDDDDDD  
FFFFFFFF  
-th GGGGGGG_RD \

sed/grep/awk 등을 사용하여 위 텍스트에서 줄이 "RD\"로 끝나는 경우 줄 시작 부분의 "-th"를 "-to"로 바꾸세요. 원하는 출력:

aaaaaaaaa   
bbbbbbbbb   
-to ccccccccc_RD \  

DDDDDDDD  
FFFFFFFF  
-to GGGGGGG_RD \

어떤 도움이라도 대단히 감사하겠습니다.

답변1

이것은 작동합니다:

sed 's/^-th\(.*RD \\\)/-to\1/' foo.txt

\이것은 특수 문자이고 다음이 필요하기 때문에 약간 복잡합니다.탈출하다. 이스케이프는 자체적으로 수행되므로 \리터럴을 일치시키는 방식 \은 입니다 \\. 일치 항목을 캡처하는 데 사용된 패턴은 교체에서 참조됩니다 \(.\)\1

Perl의 구문은 대괄호를 이스케이프할 필요가 없기 때문에 더 간단합니다.

perl -pne 's/^-th(.*RD \\)/-to$1/' foo.txt

awk에서는 다음을 수행합니다.

awk '/RD \\$/{$1="-to"}{print}' foo.txt 

관련 정보