home | list info | list archive | date index | thread index

Re: [OCLUG-Tech] How to convert a character MAC address into individual hex bytes for writing?

  • Subject: Re: [OCLUG-Tech] How to convert a character MAC address into individual hex bytes for writing?
  • From: Peter Sjöberg <peters-oclug [ at ] techwiz [ dot ] ca>
  • Date: Fri, 28 Jul 2017 09:06:22 -0400
On 28/07/17 07:22 AM, rpjday [ at ] crashcourse [ dot ] ca wrote:
> 
>   OK, this exercise should be a bit trickier -- given a character MAC
> address, how can I break it into individual hex chars for writing to
> EEPROM? So the script takes the argument, say, "A0:B1:C2:D3:E4:F5",
> and I need to, one nibble at a time, get the value 0x0A, 0x0, 0x0B, 0x01
> and so on.
> 
>   (Doesn't matter if the invoker wants to put the colons in or not, I
> can just run the string through "tr -d ':'" to deal with that.)
> 
>   As earlier, I can always loop through each character in the MAC address,
> but I'm wondering if there's some clever "printf" format that can
> do that all at once.

printf doesn't cut up a string in the way you need, it truncates it so
not much help there.

#given
MAC=00:11:aa:bC:dE:0f
mac=$(echo "${MAC,,}"|tr -d ':-')
echo -n "$mac => "
#you can
echo "$mac"|sed 's/../0x& /g'
#or
for i in $(seq 0 2 10 );do echo -n "0x${mac:$i:2} ";done

or any variant of from the character loop


> 
> rday
> 
> _______________________________________________
> Linux mailing list
> Linux [ at ] lists [ dot ] oclug [ dot ] on [ dot ] ca
> http://oclug.on.ca/mailman/listinfo/linux