2014-12-10 3 views
0

각각의 MAC 주소와 함께 다른 이더넷 포트에 대해 여러 줄을 가진 파일이 있습니다. MAC 주소와 이더넷 포트 이름을 SED 명령을 사용하여 사용자 지정 MAC 주소로 바꾸려고합니다. 하지만 MAC 주소를 대체하기 위해 SED로 정규 표현식을 가져올 수 없습니다.regex, 유닉스에서 파일의 MAC 주소를 대체하기위한 sed 명령

가 가 가
 
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:d9:00:ae", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" 
가 가 가

사람이 한 번에 1 개 라인 MAC 주소를 대체하기위한 나오지 명령 권리를 점점 나를 기쁘게 수 :

파일 추출물과 같다?

답변

1

원래 대답은 MAC 주소가 아닌 다른 줄이 없다고 가정 한 입력 줄에 유용합니다. 다음은 콜론에 의해 산재 된 1 또는 2 개의 16 진수의 6 세트와 일치합니다. 예를 들어 https://stackoverflow.com/a/245925/711422

sed -E -i "s/([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}/AA:22:CC:44:DD:66/" file 

@ 로버트 도박 응답 다음 입력 주어진 안드로이드 db8f9fg97의 AA 기준 : 22 : CC : 44 : DD : 66, 원래 대답도 로이드 식별자를 수정하는 것 .

2
sed -E -i "s/[0-9a-fA-F:]{17}/11:22:33:44:55:66/" file 
+0

대단히 감사합니다. 그것은 매력처럼 일했다 :) – AvinashUpadhyaya