1 |
Werner Jansen am Samstag, 23. Dezember 2006 22:23: |
2 |
> Guten Abend! |
3 |
> |
4 |
> On Fri, 22 Dec 2006 21:43:46 +0100 |
5 |
> |
6 |
> Werner Jansen <jansenw@××××××.edu> wrote: |
7 |
> > On Fri, 22 Dec 2006 13:10:28 +0100 |
8 |
> > |
9 |
> > Dirk Göttel <dgoettel@×××××××.de> wrote: |
10 |
> > > Hi |
11 |
> > |
12 |
> > Guten Abend! |
13 |
> > |
14 |
> > > > Als nächstes möchte ich die MAC-Adresse um eins "hochzählen" |
15 |
[snip] |
16 |
> OLDMAC=0x$(< $BASEDIR/nextMAC) |
17 |
> NEWMAC=$(printf "%012x" $(( ${OLDMAC//:/} + 0x1 )) | sed -e \ |
18 |
> "s/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6/" ) |
19 |
> |
20 |
> Was mir noch nicht so gut gefällt, ist das "Zusammenbauen" bzw. |
21 |
> Einfügen der Doppelpunkte. Kann ich den sed-Ausdruck irgendwie |
22 |
> kürzer fassen? |
23 |
|
24 |
> Oder gar etwas ganz anderes machen? |
25 |
|
26 |
Hallo |
27 |
|
28 |
Für den Fall, dass Du dafür einen perl interpreter starten willst, |
29 |
Dich für's hochzählen entschieden hast, sehr viele Instanzen planst, |
30 |
und für 128stellige MACs vorbereitet sein willst, habe ich mal etwas gespielt |
31 |
;-) |
32 |
|
33 |
$ echo 00:16:3e:00:FF:FF | perl -le 'use Math::BigInt lib=>q(GMP); $"=q(); |
34 |
my @a1=split q(), (++(my $x=Math::BigInt->new(join q(), q(0x), split q(:), |
35 |
<STDIN>)))->as_hex; |
36 |
my @a2=splice(@a1, 2); |
37 |
print join q(:),(sprintf(q(%012s),"@a2"))=~/(..)/g; |
38 |
' |
39 |
00:16:3e:01:00:00 |
40 |
|
41 |
|
42 |
Gibt sicher auch eine kürzere Version dafür. |
43 |
|
44 |
Frohe Weihnachten! |
45 |
|
46 |
Dani |
47 |
|
48 |
-- |
49 |
gentoo-user-de@g.o mailing list |