![한 문자를 다른 문자로 바꾸되 다른 문자는 포함하지 않음](https://linux55.com/image/13584/%ED%95%9C%20%EB%AC%B8%EC%9E%90%EB%A5%BC%20%EB%8B%A4%EB%A5%B8%20%EB%AC%B8%EC%9E%90%EB%A1%9C%20%EB%B0%94%EA%BE%B8%EB%90%98%20%EB%8B%A4%EB%A5%B8%20%EB%AC%B8%EC%9E%90%EB%8A%94%20%ED%8F%AC%ED%95%A8%ED%95%98%EC%A7%80%20%EC%95%8A%EC%9D%8C.png)
다음 출력이 있고 IP 주소 뒤의 "/"로 시작하는 모든 항목을 vlan이라는 단어의 첫 번째 인스턴스까지(포함하지 않음) 바꾸고 싶습니다. 이것이 어떻게 달성될 수 있습니까?
sy3-fa-c3r801-lb-3b.audc1.xxxxx.com address 192.168.1.2/30 allow-service { default traffic-group Common/traffic-group-local-only vlan Common/vlan-HA }
sy3-ibr-lb-1a.audc1.xxxxx.com address 160.34.63.68/29 floating enabled traffic-group Common/traffic-group-1 unit 1 vlan Common/vlan13
sy3-ibr-lb-1a.audc1.xxxxx.com address 160.34.63.193/26 floating enabled traffic-group Common/traffic-group-1 unit 1 vlan Common/vlan23
sy3-ibr-lb-1a.audc1.xxxxx.com address 192.168.1.1/30 allow-service { default traffic-group Common/traffic-group-local-only vlan Common/vlan-HA }
sy3-ibr-lb-1a.audc1.xxxxx.com address 160.34.63.194/26 traffic-group Common/traffic-group-local-only vlan Common/vlan23
sy3-ibr-lb-1a.audc1.xxxxx.com address 160.34.63.69/29 traffic-group Common/traffic-group-local-only vlan Common/vlan13
sy3-ibr-lb-1b.audc1.xxxxx.com address 160.34.63.68/29 floating enabled traffic-group Common/traffic-group-1 unit 1 vlan Common/vlan13
sy3-ibr-lb-1b.audc1.xxxxx.com address 160.34.63.193/26 floating enabled traffic-group Common/traffic-group-1 unit 1 vlan Common/vlan23
sy3-ibr-lb-1b.audc1.xxxxx.com address 192.168.1.2/30 allow-service { default traffic-group Common/traffic-group-local-only vlan Common/vlan-HA }
sy3-ibr-lb-1b.audc1.xxxxx.com address 160.34.63.195/26 traffic-group Common/traffic-group-local-only vlan Common/vlan23
sy3-ibr-lb-1b.audc1.xxxxx.com address 160.34.63.70/29 traffic-group Common/traffic-group-local-only vlan Common/vlan13
답변1
sed 's/\(.*[0-9]\)\/.* \(vlan.*\)/\1REPLACEMENT\2/' file
앞의 숫자로 첫 번째 발생을 일치시키고 /
공백 문자로 첫 번째 발생을 일치시킵니다.vlan
답변2
작동할 수도 있음
sed -r 's/vlan/\x01/;s/(([0-9]{1,3}[.]?){4})\/.*\x01/\1...vlan/' file
vlan
탐욕을 피하기 위해 첫 번째 자리 표시자를 사용하십시오 sed
. 예, IP의 "선택적" 지점에 작은 구멍이 있습니다. 필요한 경우 더 복잡한 정규식을 사용하세요.