我有超过500个MAC地址,我正在尝试找到一种在每2个字符之间插入冒号的简单方法。
答案 0 :(得分:7)
您可以获取notepad ++并进行搜索并替换为正则表达式,例如搜索(..)并替换为\ 1:
答案 1 :(得分:6)
它可能有点过分,但我会使用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列,或者只需粘贴到记事本中。
答案 2 :(得分:5)
您可以使用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,但这会在每个地址的末尾留下一个额外的冒号。
答案 3 :(得分:2)
= CONCATENATE(MID(A2; 1; 2);":&#34 ;; MID(A2; 3; 2);":&#34 ;; MID(A2; 5; 2);":&#34 ;; MID(A2; 7 2);":&#34 ;; 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,我使用了你上面的答案并建立了它,谢谢
答案 4 :(得分:1)
如果这是一次性事情,为什么不使用带键盘宏的emacs?
答案 5 :(得分:1)
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
答案 6 :(得分:0)
这是一个快速的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
答案 7 :(得分:0)
$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一样工作!
答案 8 :(得分:0)
我使用以下内容将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
答案 9 :(得分:0)
使用Notepad ++的Matt解决方案,但经过微调只能更改(仅)包含mac地址的行:
发现:^(..)(..)(..)(..)(..)(..)$
REPLACE:\1:\2:\3:\4:\5:\6
答案 10 :(得分:0)
假设所有MAC位于一个文件中,每行一个MAC:
sed -i 's/../&:/g;s/:$//' FILE