Covert Deci to Hex (New to AWK)


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Covert Deci to Hex (New to AWK)
# 1  
Old 05-04-2005
Covert Deci to Hex (New to AWK)

Hi, I am very new to awk and would be grateful for your help.

I need to convert a file with details like this,


Wregister( 45676, 0)
Wregister( 55550, 1)
Wregister( 44000, 0)
FlipFlop( 2342, 2)
.
.

to look like this

Wregister(626C, 0)
Wregister(D8FE, 1)
Wregister(ABE0, 0)
FlipFlop( 2342, 2) -----> unchanged,name doesn't start with "Wregister("
.
.

It converts $2 in deci into hex, and then combines the previous $1 and $2 together. The (,) at the end of the numbers is a problematic one for me. It needs to be retained too.

Please help me.
# 2  
Old 05-04-2005
Code:
$ more file
Wregister( 45676, 0)
Wregister( 55550, 1)
Wregister( 44000, 0)
FlipFlop( 2342, 2)
$ more file.sh 
#!/bin/sh

while read line; do
  echo "$line" | grep "^Wreg" >/dev/null 2>&1
  if [ "$?" -eq "0" ]; then
     val=`echo "$line" | sed 's/^Wregister*([ ]*\([0-9]*\),.*$/\1/'`
     hex=`echo "obase=16;ibase=10; $val" | bc`
     echo "$line" | sed "s/$val/$hex/"
  else
     echo "$line"
  fi
done < file

exit 0
$ chmod +x ./file.sh
$ ./file.sh > newfile
$ more newfile
Wregister( B26C, 0)
Wregister( D8FE, 1)
Wregister( ABE0, 0)
FlipFlop( 2342, 2)

Cheers
ZB
# 3  
Old 05-05-2005
Hi ZB,

Thanks very much for the help. I realised that you are using "sed" command, but can i do it in awk? and I am running the prog in UNIX.
# 4  
Old 05-05-2005
This is run under "UNIX".

Also; you no doubt could solve this using awk, but why bother if it's already solved using the shell, bc and sed?

Cheers
ZB
# 5  
Old 05-05-2005
Quote:
Originally Posted by Linda_H
Hi ZB,

Thanks very much for the help. I realised that you are using "sed" command, but can i do it in awk? and I am running the prog in UNIX.
nawk -f linda.awk myFile

linda.awk:
Code:
BEGIN {
  FS="[(,]"
  OFS=","
}
$1 == "Wregister" {
  $1 = sprintf("%s(%X", $1, $2)
  $2=$3; NF--
}
1

# 6  
Old 06-03-2005
Hi vgersh99,

Thks for the help. I finally applied it succesfully today.

But, here comes another seperate but related problem. This time, I tried to convert from a Hex to Deci number by creating a new script with "%d" on the hex number, but it failed.

I need to convert a file with these,

ABC c001 DEF
ABC c050 EFG
ABC c802 GHI

to

ABC 49153 DEF
ABC 49232 EFG
ABC 51202 GHI

Please help me again.
Thank you!!
# 7  
Old 06-03-2005
Quote:
Originally Posted by Linda_H
Hi vgersh99,

Thks for the help. I finally applied it succesfully today.

But, here comes another seperate but related problem. This time, I tried to convert from a Hex to Deci number by creating a new script with "%d" on the hex number, but it failed.

I need to convert a file with these,

ABC c001 DEF
ABC c050 EFG
ABC c802 GHI

to

ABC 49153 DEF
ABC 49232 EFG
ABC 51202 GHI

Please help me again.
Thank you!!
nawk -f linda.awk yourFile.txt

linda.awk:
Code:
BEGIN {
    for (i = 0; i < 10; i++)
      hex[i] = i
    hex["a"] = hex["A"] = 10
    hex["b"] = hex["B"] = 11
    hex["c"] = hex["C"] = 12
    hex["D"] = hex["d"] = 13
    hex["e"] = hex["E"] = 14
    hex["f"] = hex["F"] = 15
  }

  function dehex(h,  i,x) {
    for (i = 1; i <= length(h); i++)
      x = x*16 + hex[substr(h, i, 1)]
    return x
  }

{
 $2 = dehex($2)
 print
}

CompLangAWK on USENET
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Print hex Ip address in decimal format inside awk script

Hi to all, May someone help me with the following. The awk script below is part of a bigger awk script, and this part attempts to print an Ip address that is in hex format in decimal format. I'm trying with following code but I'm getting 0.0.0.0 and the correct answer is 192.168.140.100 ... (9 Replies)
Discussion started by: Ophiuchus
9 Replies

2. HP-UX

Replacing Hex Characters In A File Using awk?

Hi guys, First off, i'm a complete noob to UNIX and LINUX so apologies if I don't understand the basics! I have a file which contains a hex value of '0D' at the end of each line when I look at it in a hex viewer. I need to change it so it contains a hex value of '0D0A0A' I thought... (10 Replies)
Discussion started by: AndyBSG
10 Replies

3. Shell Programming and Scripting

awk to compare hex number

$ awk 'BEGIN{ pat111=0x1000000002E3E02; snBegin=0x1000000002E3E01; if (pat111<=snBegin) printf "a\n"}' a Result is not correct. Looks like the number is too big. Any idea? Thx! Please use code tags <- click the link! (2 Replies)
Discussion started by: carloszhang
2 Replies

4. Shell Programming and Scripting

how to get data from hex file using SED or AWK based on pattern sign

I have a binary (hex) file I need to parse to get some data which are encoded this way: .* b4 . . . 01 12 .* af .* 83 L1 x1 x2 xL 84 L2 y1 y2 yL By another words there is a stream of hexadecimal bytes (in my example separated by space for better readability). I need to get value stored in... (3 Replies)
Discussion started by: sameucho
3 Replies

5. Shell Programming and Scripting

Range of numbers in HEX using AWK

Hi , How do i found out all the number in a range ( HEX) for example Input is 15CF:15D2 Output needed 15CF 15D0 15D1 15D2 Thanks (2 Replies)
Discussion started by: greycells
2 Replies

6. UNIX for Dummies Questions & Answers

How to specify a FS as HEX value in AWK

Hi All, I have one input file seperated with Hex decimal B1 value. And i want to process this file. And iam creating an awk script to process this file. How can I specify the Field seperator as HEX B1 in my awk. Please help. Thanks in advance.:) (2 Replies)
Discussion started by: psk_kumar
2 Replies

7. Shell Programming and Scripting

awk to remove leading zeros for a hex number

Is it possible by using awk to remove leading zeros for a hex number? ex: 0000000011179E0A -> 11179E0A Thank you! (4 Replies)
Discussion started by: carloszhang
4 Replies

8. Programming

What is the difference between ios::hex and std::hex?

Hi, Is there really a difference between these two, std::hex and ios::hex?? I stumbled upon reading a line, "std::ios::hex is a bitmask (8 on gcc) and works with setf(). std::hex is the operator". Is this true? Thanks (0 Replies)
Discussion started by: royalibrahim
0 Replies

9. Programming

After converting the hexstr to Hex and storing the Hex in a char*

Hi All, My main intension of is to convert the Hexstring stored in a char* into hex and then prefixing it with "0x" and suffix it with ',' This has to be done for all the hexstring char* is NULL. Store the result prefixed with "0x" and suffixed with ',' in another char* and pass it to... (1 Reply)
Discussion started by: rvan
1 Replies

10. Shell Programming and Scripting

AWK and hex sequences

for file in `seq 1 256`; do printf "\x$file -- $file" ; done ; printf "\n" produces the wrong output. I want to show the ascii codes but need to output a hexidecimal number sequence. I know I should use awk to do this but i'm not sure how cause I forget. what is the awk equivelant of seq... (5 Replies)
Discussion started by: JoeTheGuy
5 Replies
Login or Register to Ask a Question