sed를 사용하여 OpenVPN 파일에서 서버 이름 변경

sed를 사용하여 OpenVPN 파일에서 서버 이름 변경

다음 파일이 있습니다.

    proto udp
    resolv-retry infinite
    nobind

    #Single line of those bellow, I've added multiple for variations of it 
    remote fi.server.com 50505
    remote us-cityone.server.com 5050
    remote uk-citytwo.server.com 50500
    remote us-citythree.server.com  56546
    remote sweden.server.com 6546546
    rest of config file..

분명히 말씀드리자면, 이것은 OpenVPN conf 파일입니다. remote servername 5555-로 시작하는 줄만 바꾸고 싶습니다 .서버 이름또 다른.

remote servername 5555예제로 여러 줄을 추가했습니다 . 모두 내가 변경할 수 있는 변경 사항을 나타내기 때문입니다.

난 그냥 중간 열 등을 일치시키고 fi.server.com다른 이름으로 바꾸고 싶습니다 us-newyorkcity.server.com.sed

이 패턴이 작동하지 않는 이유는 무엇입니까?

sed -i.bak 's/\w+(-|\.)\.?\w+\.?\.com/g' filename

나도 이거 해봤는데..

sed -i.bak 's/\w+(-|\.)\.?\w+\.?\.\w+/g' filename

또한 이 예에서는 부품 us-newyorkcity.server.comserver.com정적이라는 점에 유의하세요. 휴식이 바뀌었습니다.

도와 주셔서 감사합니다!

답변1

변수 NEWNAME이름이 삽입하려는 이름이라고 가정하면 다음을 사용할 수 있습니다.

sed -i.bak "s|^\(remote \)\([^ ]*\)\([ ]*[0-9]*\)|\1$NEWNAME\3|" filename

관련 정보