텍스트 파일의 Mac 주소에서 하위 문자열 검색 및 바꾸기

텍스트 파일의 Mac 주소에서 하위 문자열 검색 및 바꾸기

다음은 변경할 파일의 일부입니다. awk 또는 sed를 사용할 수 있습니다. 모든 유틸리티는 패턴 일치에 적합합니다.

mgad 1
m-id         50
rf-chan-id   1
base-station-id 00:a0:bc:0c:1b:c1
....
....
mgad 2
....
base-station-id 00:a0:bc:0c:1b:c2
....
....
mgad 3
....
base-station-id 00:a0:bc:0c:1b:c3
....
....
mgad 4
base-station-id 00:a0:bc:0c:1b:c4

파일의 여러 줄에 있는 다섯 번째 위치의 mac 주소를 00:a0:bc:0c:XX:c3에서 00:a0:bc:0c:18:c3까지 편집해야 합니다. PN: 5번째 숫자는 가변적일 수 있으므로 "18"로 변경해야 합니다.

나는 이것을 시도했습니다 :

sed -En ' s/^\( base-station-id.* [0-9A-Fa-f]{2}\:[0-9A-Fa-f]\:[0-9A-Fa-f]\:[0-9A-Fa-f]\:\)[0-9A-Fa-f]+\(\:.*\)$/\118\2/p; '

Mac 주소의 하위 문자열에 필요한 변경 사항으로 올바른 정규식 패턴 일치 및 교체를 도와주세요.

답변1

18앞 부분을 캡처합니다. MAC의 5번째 위치에 두 문자를 허용한 다음 뒤 부분을 캡처하여 첫 번째 캡처된 그룹, 텍스트 및 두 번째 캡처 그룹 으로 바꿉니다 .

sed 's/\(base-station-id ..:..:..:..:\)..\(:..\)/\118\2/' < input > output

관련 정보