How to convert a file containing hex code to decimal using script?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to convert a file containing hex code to decimal using script?
# 15  
Old 05-31-2012
Try...
Code:
awk 'function p(i){printf "%d.%d.%d.%d ",$i,$(i+1),$(i+2),$(i+3)}{p(5);p(13);p(17);print "c:" $29+$30+$31+$32+$33}' hexdata.log

This User Gave Thanks to Ygor For This Post:
# 16  
Old 06-01-2012
Thanks very much Ygor , i am getting desired output

Code:
235.20.192.65 10.10.50.9 10.10.39.42 c:0

but this steps need to repeat for each and every line in the file (each line as same number of words 108)
Right now it only checks the first line and gives the output

---------- Post updated 06-01-12 at 12:16 AM ---------- Previous update was 05-31-12 at 11:56 PM ----------

Also need the time stamp to be printed at the beginning of the line

---------- Post updated at 01:49 AM ---------- Previous update was at 12:16 AM ----------

guys , Please can you help out with the above ,

I really appreciate the efforts taken by all your efforts so far

Last edited by Scrutinizer; 06-01-2012 at 01:59 AM.. Reason: code tags
# 17  
Old 06-01-2012
Not sure what you mean by a time stamp?

Anyway, combining the awk code above gives you something to try...
Code:
$ cat hex.txt
00 00 00 04 0A 02 05 01 00 00 00 00 0A 0A 32 C7 00 00 00 00 0A 0A 32 F3 0A 0A 2B 2D 00 00 00 00 00 00 00 08 80 01 06 6D 26 E4 00 02 00 00 00 00
06 6D 0A 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

$ cat prog.awk
        function p(i)
        {
                printf "%d.%d.%d.%d ", $(i), $(i + 1), $(i + 2), $(i + 3)
        }

        {
                for (i = 1; i <= NF; i++) {
                        $i = sprintf("%0d", "0x" $i)
                }
                printf "%s ", ts
                p(5)
                p(13)
                p(17)
                print "c:" ($29 + $30 + $31 + $32 + $33)
        }

$ gawk --posix -f prog.awk ts=$(date '+%Y%m%d%H%M%S') hex.txt > result.txt

$ cat result.txt
20120601110632 10.2.5.1 10.10.50.199 0.0.0.0 c:0
20120601110632 0.0.0.0 0.0.0.0 0.0.0.0 c:0

$

# 18  
Old 06-02-2012
Thanks ygor , by timestamp i meant the current time , i tried the steps you mentioned but it gives all zeroes

Code:
-bash-3.2$ gawk --posix -f prog.awk ts=$(date '+%Y%m%d%H%M%S') Hex.txt
20120602173822 0.0.0.0 0.0.0.0 0.0.0.0 c:0
20120602173822 0.0.0.0 0.0.0.0 0.0.0.0 c:0
20120602173822 0.0.0.0 0.0.0.0 0.0.0.0 c:0


Last edited by Scrutinizer; 06-02-2012 at 05:41 AM.. Reason: code tags
# 19  
Old 06-03-2012
try option --non-decimal-data
# 20  
Old 06-03-2012
Ygor ,How do i user that option ?where do i set it
# 21  
Old 06-04-2012
I suspect you want to break input up into 108 byte records.

Try this slight change to Ygor's program:

Code:
$ cat prog.awk
  function p(i)
  { 
      printf "%d.%d.%d.%d ",P[i],P[i+1],P[i+2],P[i+3]
  }
  {
     for(i=1;i<=NF;i++) {
        P[++N]=sprintf("%0d", "0x"$i);
        if(N>107) {
           N=0;
           printf "%s ", ts;
           p(5)
           p(13)
           p(17)
           print "c:" P[29]+P[30]+P[31]+P[32]+P[33]
        }
     }
   }
$ gawk --non-decimal-data -f prog.awk -vts=$(date '+%Y%m%d%H%M%S') hex.txt > result

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. Shell Programming and Scripting

Convert Binary File To Hex In Linux

dHi, I have the attached file(actual file can be extracted post unzipping it) & i am trying to use the following code for coversion to hex format. Starting hex value is 84 which is start of the record & termination is done using 00 00 followed by 84(hex) which i can see in the dump clearly using... (14 Replies)
Discussion started by: siramitsharma
14 Replies

3. Programming

Urgent help needed.. C++ program to convert decimal to hexa decimal

Hi , seq can be 0...128 int windex = seq / 8; int bindex = seq % 8; unsigned char bitvalue = '\x01' << (7-bindex) ; bpv.bitmapvalue = bitvalue; This is the part of a program to convert decimal to bitmap value of hexadecimal. I want this to change to convert only to... (1 Reply)
Discussion started by: greenworld123
1 Replies

4. Shell Programming and Scripting

Convert hex to decimal

can someone help me in converting hex streams to decimal values using perl script Hex value: $my_hex_stream="0c07ac14001676"; Every hex value in the above stream should be converted in to decimal and separated by comma. The output should be: 12,07,172,20,00,22,118 (2 Replies)
Discussion started by: Arun_Linux
2 Replies

5. UNIX for Advanced & Expert Users

Convert 32 bit hex value into fields in decimal

I have 32 bit value in hex that I want to separate into fields and then convert the fields into decimal values. Input file has 2 words of 32 bit hex values: 000001ac ca85210e Output both words separated into individual bit fields: ca85210e: f1(31:9), f2(8:0) f7c392ac: f1(31:14),... (2 Replies)
Discussion started by: morrbie
2 Replies

6. Shell Programming and Scripting

Decimal to hex conversion

Dear All PROs Thanks in advance need a shell for Decimal to hex conversion input file (decimal values) 65,5,48,66,133,131,118,47 65,5,48,66,133,131,83,63 . . desire output should be (Hex value)... (11 Replies)
Discussion started by: The_Archer
11 Replies

7. Shell Programming and Scripting

Convert hex to decimal or reverse is better?

Please Help Me! about the problem down under. I have 2 files with nearly the same characteristics, I have to convert one to the other format or the other format to one's format. I want to write it with awk. The first file contain lines like this: 300000001#A#Y#Y#Y#Y The other file contain... (4 Replies)
Discussion started by: Axel82
4 Replies

8. Shell Programming and Scripting

How to convert hex numbers to decimal ?

Hi, please tell me how to convert hex number to decimal 000000E7 000000000002640D 0000000000025B16 and seconds to minutes, hours, days, months, years bytes to kbytes, mbytes , gbytes read the following examples while read a b do printf "%5d %5d\n" "0x$a" "0x$b" done < "$FILE"... (15 Replies)
Discussion started by: jack2
15 Replies

9. Shell Programming and Scripting

having a bash script convert ft to meters with 1 decimal

What is the correct syntax to limit the number of decimals to 1 or 0 in a bash script? Here is the partial code I have which works, but if I echo $meters, it has 4 or 5 decimals: METERS=`echo "$FEET * 0.3048" | bc` I read about scale and length in the bc man page, but I can't seem to get the... (2 Replies)
Discussion started by: audiophile
2 Replies

10. Shell Programming and Scripting

hex to decimal

hi all, echo "ibase=16;obase=10;11" | bc shouldn't i get 17? i am getting 11 i am trying to convert 11 (hex) to decimal stuck! JAK (4 Replies)
Discussion started by: jakSun8
4 Replies
Login or Register to Ask a Question