HEX-DEC

Niklas Hallqvist niklas at appli.se
Thu Oct 5 11:20:20 CEST 2006


Niklas Hallqvist wrote:
> Jon Otterholm wrote:
>   
>> Hej.
>>
>> När man ändå har värmt upp listan lite så varför inte belasta den med 
>> lite av dagens upggifter också...
>>
>> Jag behöver konvertera en MAC från hex till dec i ett shellscript (sh) t.ex:
>>
>> 00:0f:3d:f7:8b:0c till 0.15.61.247.139.12
>>
>> Någon som har förslag på hur man skulle kunna åstadkomma detta?
>>
>> /Jon
>> _________________________________________________
>> BSD Users Sweden -- BUS at stacken.kth.se
>> https://lists.stacken.kth.se/mailman/listinfo/bus
>>
>>   
>>     
> Testa
>
> #!/bin/sh
> IFS=:; x=$1; for i in $x; do r=$r$d$((0x$i)); d=.; done; echo $r
>
> Short enough?
>
> Om nu portabilitet är heligt, så får man slå upp lite vad Posix anser om 
> 0x som
> prefix, eventuellt måste 16# användas istället.
>
>
>
> _________________________________________________
> BSD Users Sweden -- BUS at stacken.kth.se
> https://lists.stacken.kth.se/mailman/listinfo/bus
>
>   
Man vet att man har för mycket att göra när man flyr till sådant här...

en alternativ lösning som inte använder IFS

y=$1:; r=; d=; while [ x != x$y ]; do r=$r$d$((16#${y%%:*})); 
y=${y#??:}; d=.; done; echo $r


Kanske något mindre läsbart, men obfuskering är kul.



More information about the BUS mailing list