2009-06-29 6 views

Répondre

1

Si c'est une chose unique, pourquoi ne pas utiliser emacs avec une macro clavier?

youtube link

7

Vous pouvez obtenir notepad ++ et faire une recherche et remplacer par expression rationnelle comme la recherche pour (..) et le remplacer par \ 1:

+0

Pourquoi serait '\ 1' insérer deux points? –

+0

Woops désolé devrait être \ 1: – Matt

5

Il peut-être exagéré, mais j'utiliser Excel. Coller votre adresse MAC dans la colonne A et cette formule dans la colonne B:

=LEFT(A1,2)&":"&MID(A1,3,2)&":"&MID(A1,5,2)&":"&MID(A1,7,2)&":"&MID(A1,9,2)&":"&RIGHT(A1,2) 

Ensuite, vous pouvez copy la colonne B, et soit paste special...values dans la colonne C ou tout simplement coller dans le Bloc-notes.

5

Vous pouvez utiliser une commande sed comme celle-ci:

sed 's/\(\w\w\)\(\w\w\)\(\w\w\)\(\w\w\)\(\w\w\)\(\w\w\)/\1:\2:\3:\4:\5:\6/g' filename 

Cela suffit de tirer sur 12 caractères en groupes de deux, et les recracher avec côlons au milieu. Vous pouvez également essayer un modèle plus simple comme s/(\ w \ w)/\ 1:/g, bien que cela vous laissera avec un deux-points supplémentaire à la fin de chaque adresse.

+0

Battez-moi à elle! En ce qui concerne votre dernière phrase, vous pourriez alors utiliser une autre commande sed pour enlever le deux-points, et cela pourrait être encore plus court. – SingleNegationElimination

+0

Toutes les versions de 'sed' ne prennent pas en charge '\ w' pour désigner un caractère-mot. Une plus grande précision dans la correspondance ('[0-9a-fA-F]') rendrait la solution itérative préférable. –

+0

Personnellement, je le ferais probablement en Perl, mais je dois remettre en question la façon simple et décente de le faire. perl -e "while (<>) {$ _ = ~ s/(\ w {2})/$ 1:/g; s /: $/$ /;}" .. Je pense que l'on le ferait . –

2

= CONCATENER (MID (A2; 1; 2); ":"; MID (A2; 3; 2); ":"; MID (A2; 5; 2); ":"; MID (A2; 7, 2); ":"; MID (A2; 9; 2))

Cela devrait aider à 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))

ici, il est dans Excel, j'ai utilisé votre réponse ci-dessus et construit en dehors, Merci

0

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

0

Voici un exemple de PowerShell rapide:

$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 
-1
$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 

Merci Jonathan Walz! A travaillé comme un CHARME!

0

J'ai utilisé comme suit pour ajouter adresse MAC côlons à une table HTML existant dans vim:

:%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 
0

solution de Matt avec Notepad ++, mais peaufiné uniquement les lignes de changement que (seulement) contiennent une adresse MAC:

FIND: ^(..)(..)(..)(..)(..)(..)$

REMPLACER: \1:\2:\3:\4:\5:\6

Questions connexes