7
votes

Insertion de points dans une liste d'adresses MAC

J'ai plus de 500 adresses MAC et j'essaie de trouver un moyen simple d'insérer des colons entre 2 caractères.


0 commentaires

11 Réponses :


1
votes

Si c'est une chose une fois, pourquoi ne pas utiliser Emacs avec une macro du clavier?

Lien YouTube


0 commentaires

7
votes

Vous pouvez obtenir un bloc-notes ++ et faire une recherche et remplacer avec regex comme la recherche (..) et remplacez-la par \ 1:


1 commentaires

Pourquoi «\ 1-» insérer un côlon?



6
votes

Il peut-être trop de succurseur, mais j'utiliserais Excel. Collez vos adresses de votre 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)


0 commentaires

5
votes

Vous pouvez utiliser une commande SED telle que ceci:

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


3 commentaires

Battez-moi-moi! Dans votre dernière phrase, vous pouvez ensuite utiliser une autre commande SED pour dépouiller le côlon traînant, et il pourrait encore être plus court.


Toutes les versions de «SED» support '\ W' ne signifient pas un caractère de mots. Une plus grande précision dans le match ('[0-9a-FA-F]') rendrait la solution itérative préférable.


Je le ferais certainement tout à fait à Perl, mais je dois uplifier la méthode de la réégalité décemment simple. Perl -e "tandis que (<>) {$ _ = ~ s / (\ w {2}) / 1 $: / g; S /: $ / $ /;}" .. Je pense que l'on le ferait.



2
votes

= Concaténate (milieu (A2; 1; 2); ":"; milieu (A2; 3; 2); ":"; milieu (A2; 5; 2); ":"; milieu (A2; 7; ; 2); ":"; milieu (A2; 9; 2))

Cela devrait aider à OpenOffice

= concaténate (milieu (A7,1,2), ":", milieu (A7,3,2), ":", milieu (A7,5,2), ":", milieu (A7,7 , 2), ":", milieu (A7,9,2), ":", milieu (A7,11,2))

Ici, c'est dans Excel, j'ai utilisé votre réponse ci-dessus et j'ai construit, merci


0 commentaires

1
votes

 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 commentaires

0
votes

Voici un exemple rapide PowerShell: xxx


0 commentaires

0
votes
$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
Thanks Jonathan Walz!  Worked like a CHARM!

0 commentaires

0
votes

J'ai utilisé ce qui suit pour ajouter des points d'adresse MAC à une table HTML existante 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 commentaires

0
votes

Solution de Matt à l'aide de Notepad ++, mais ajusté pour uniquement changer les lignes (uniquement) contenant une adresse MAC:

Recherche: ^ (..) (..) (..) (..) (..) (..) (..) $

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


0 commentaires

0
votes

En supposant que tous les MAC sont dans un fichier, un Mac par ligne:

sed -i 's /../&:/ g; S /: $ //' fichier


0 commentaires