在Unix中使用正则表达式和sed命令替换文件中的MAC地址

3

我有一个文件,其中包含不同以太网端口及其相应MAC地址的多行。我尝试使用SED命令将mac地址和以太网端口名称替换为我的自定义mac地址,但我无法正确地使用SED正则表达式替换mac地址。

文件摘录如下:

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

请问有人能帮我使用SED命令正确地替换一次仅一行的mac地址吗?

2个回答

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

2
原始答案针对给定的输入行非常有效,假设该行中没有其他与MAC地址不匹配的内容。以下只匹配由冒号交错的六组1或2个十六进制数字。基于@robert-gamble的答案 https://dev59.com/eHVC5IYBdhLWcg3wlyMo#245925
 sed -E -i "s/([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}/AA:22:CC:44:DD:66/" file

例如,给定以下输入android-db8f90123496fg97 AA:22:CC:44:DD:66,原始答案也会修改Android标识符。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接