다음 문자열을 변경하고 싶습니다
allow ^120\.123\.178\.254$
입력하다
allow ^124\.130\.23\.235$
sed와 함께.
다음을 시도했지만 작동하지 않습니다.
sed -e 's/allow ^120\.123\.178\.254$/allow ^124\.130\.23\.235$/g' /etc/xxx/file.conf
도와주세요?
답변1
소스 코드에는 \
, 및 문자 $
가 포함되어 있으며 추가 인용이 필요합니다. 귀하의 목표 도 참조되어야 합니다^
.
\
따라서 결과 문자열은 약간 지저분합니다.
sed 's/allow \^120\\\.123\\\.178\\\.254\$/allow ^124\\.130\\.23\\.235$/'
g
마지막 것은 문자열이 한 줄에 여러 번 나타날 수 있는 경우에만 필요합니다.
예를 들어:
$ cat x
allow ^120\.123\.178\.254$
$ sed 's/allow \^120\\\.123\\\.178\\\.254\$/allow ^124\\.130\\.23\\.235$/' x
allow ^124\.130\.23\.235$
답변2
perl
옵션 인 경우 검색 패턴과 바꾸기를 모두 참조할 수 있습니다.
$ cat file.conf
allow ^120\.123\.178\.254$
$ perl -pe 's/\Qallow ^120\.123\.178\.254$/q(allow ^124\.130\.23\.235$)/e' file.conf
allow ^124\.130\.23\.235$