我有超过500个MAC地址,我正在尝试找到一种在每2个字符之间插入冒号的简单方法。
您可以获取notepad ++并进行搜索并使用正则表达式替换,例如搜索(..)并替换为\ 1:
Matt的解决方案使用Notepad ++,但经过微调只能更改(仅)包含mac地址的行:
发现:^(..)(..)(..)(..)(..)(..)$
更换:\1:\2:\3:\4:\5:\6
假设所有MAC都在一个文件中,每行一个MAC:
sed -i 's/../&:/g;s/:$//' FILE
它可能有点过分,但我会使用Excel。将您的MAC地址粘贴到A列,将此公式粘贴到B列:
=LEFT(A1,2)&":"&MID(A1,3,2)&":"&MID(A1,5,2)&":"&MID(A1,7,2)&":"&MID(A1,9,2)&":"&RIGHT(A1,2)
然后,你可以copy
列B,并将paste special...values
放入C列或只是粘贴到记事本中。
你可以使用这样的sed命令:
sed 's/\(\w\w\)\(\w\w\)\(\w\w\)\(\w\w\)\(\w\w\)\(\w\w\)/\1:\2:\3:\4:\5:\6/g' filename
这将只以两个一组的形式拉出12个字符,然后用冒号将它们吐出来。您也可以尝试一个更简单的模式,如s /(\ w \ w)/ \ 1:/ g,尽管这会在每个地址的末尾留下一个额外的冒号。
= CONCATENATE(MID(A2; 1; 2); “:”; MID(A2; 3; 2); “:”; MID(A2; 5; 2); “:”; MID(A2; 7; 2) ; “:”; MID(A2; 9; 2))
这应该有助于OpenOffice
= CONCATENATE(MID(A7,1,2), “:”,MID(A7,3,2), “:”,MID(A7,5,2), “:”,MID(A7,7,2) , “:”,MID(A7,9,2), “:”,MID(A7,11,2))
在这里它是excel,我用你上面的答案并建立它,谢谢
如果这是一次性的事情,为什么不使用带有键盘宏的emacs?
Linux, UNIX - Bash
Given a address like MACstr="cc0deca96acf"
MACfiexd=$(sed -e 's/.\{2\}/&:/g;s/.$//' <<<$MACstr)
echo "$MACfixed"
cc:0d:ec:a9:6a:cf
这是一个快速的PowerShell示例:
$macs = Get-Content C:\temp\MAC.txt
$output = foreach ($mac in $macs){
$mac.insert(2,":").insert(5,":").insert(8,":").insert(11,":").insert(14,":")
}
$output | Out-File c:\temp\newmac.txt
$macs = Get-Content C:\temp\MAC.txt
$output = foreach ($mac in $macs){
$mac.insert(2,":").insert(5,":").insert(8,":").insert(11,":").insert(14,":")
}
$output | Out-File c:\temp\newmac.txt
谢谢Jonathan Walz!像CHARM一样工作!
我使用以下内容将MAC地址冒号添加到vim中的现有HTML表:
:%s/<td> \([0-9a-zA-Z]\{2\}\)\([0-9a-zA-Z]\{2\}\)\([0-9a-zA-Z]\{2\}\)\([0-9a-zA-Z]\{2\}\)\([0-9a-zA-Z]\{2\}\)\([0-9a-zA-Z]\{2\}\) <\/td>/<td> \1:\2:\3:\4:\5:\6 <\/td>/g