以下是要更改的文件的摘录: 可以使用 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
捕获主导部分;允许 MAC 的第 5 个位置中的任意两个字符,然后捕获尾部部分,并将其替换为第一个捕获的组、文本18
和第二个捕获的组:
sed 's/\(base-station-id ..:..:..:..:\)..\(:..\)/\118\2/' < input > output