다음 파일이 있습니다.
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.com
만 server.com
정적이라는 점에 유의하세요. 휴식이 바뀌었습니다.
도와 주셔서 감사합니다!
답변1
변수 NEWNAME
이름이 삽입하려는 이름이라고 가정하면 다음을 사용할 수 있습니다.
sed -i.bak "s|^\(remote \)\([^ ]*\)\([ ]*[0-9]*\)|\1$NEWNAME\3|" filename