sed : 문장의 나머지 부분을 반복하지 않고 한 단어를 바꿉니다.

sed : 문장의 나머지 부분을 반복하지 않고 한 단어를 바꿉니다.

다음과 같은 스키마가 있습니다.

foo bar

항상 foo동일하지만 bar바뀔 수 있습니다. 해시 테이블이 있고 의 모든 값에 대해 bar새로운 값이 있습니다. 내가 지금 하고 있는 일은:

sed -i 's/foo bar/foo new_value/g' file

foo대체 문자열에서 중복을 피하는 방법이 있다고 확신합니다 . sed비슷한 것을 제공 합니까 ? 좋다

sed -i 's/foo @@bar@@/new_value/g' file

@@string@@교체해야 하는 값입니다.

답변1

sed -i 's/\(foo \)bar/\1new_value/g' file

\( \)시퀀스는 텍스트를 "캡처"하여 대체 문자열로 배치할 수 있습니다 \1. 이 작업은 \1사용할 캡처된 텍스트를 나타내는 숫자를 사용하여 여러 번 수행할 수 있습니다 . 캡처된 텍스트는 순차적으로 계산됩니다 \(.

관련 정보