my $pretty_mac = join('-', map { sprintf('%02x', hex($_)) } split(/-/, $mac))
my $pretty_mac = ($mac =~ s/(^|-)([[:xdigit:]]+)/sprintf("%s%02s", $1, $2)/gre);
$mac = join('-', map { sprintf('%02x', hex($_)) } split(/-/, $mac));
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
#!/usr/bin/perl use strict ; use warnings ; while( my $mac = <DATA> ) { # \n vom Zeilenende entfernen chomp $mac ; printf "Alt: %s\n" , $mac ; # Alle alten Trenner entfernen. $mac =~ s/-//g ; # Alle zwei Zeichen (nicht -) ein - einfügen, # falls noch weitere Zeichen folgen (also kein - nach dem letzten Paar.) $mac =~ s/([^-]{2})(?=.)/$1-/g ; printf "Neu: %s\n\n" , $mac ; } __DATA__ 0-1e-b-2b-54-f3 01-0d-9d-cf-b6-25 0-11-32-8-6f-4b
1
2
3
4
5
6
7
8
Alt: 0-1e-b-2b-54-f3
Neu: 01-eb-2b-54-f3
Alt: 01-0d-9d-cf-b6-25
Neu: 01-0d-9d-cf-b6-25
Alt: 0-11-32-8-6f-4b
Neu: 01-13-28-6f-4b