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