Converting hex to ascii/decimal


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Converting hex to ascii/decimal
# 8  
Old 03-31-2011
Code:
#!/bin/bash

......
......

nawk '
 <here comes the copy/paste of shift.awk>
' myFile

....
....

This User Gave Thanks to vgersh99 For This Post:
# 9  
Old 03-31-2011
Bash (and a number of other shells) has builtin support for different numeral radices

For example:
Code:
$ hex=76
$ echo "Decimal equivalent is: $(( 16#76 ))"
Decimal equivalent is: 118
$ echo "Octal equivalent is: $(( 8#76 ))"
Octal equivalent is: 62
$

# 10  
Old 03-31-2011
Ok so new problem. Everything was looking ok when I output the data on the screen, But once I actual open or view the output file I get ^@ after every ASCII character. Any ideas? I tried removing with sed and tr but no luck. tr just reverts it back to its hex form

Quote:
------------
ip = 10.2.3.4
------------
Hardware= [8^@0^@0^@0^@]
Errors= [ 161 ]
Full= [ 99 ]
SW Version= [1^@.^@8^@.^@1^@.^@1^@0^@9^@]
Test= [ 118 ]
# 11  
Old 03-31-2011
do cat -vet myFile and post the results (using code tags).
Posting your modified script would help as well...

Last edited by vgersh99; 03-31-2011 at 03:32 PM.. Reason: more comments
This User Gave Thanks to vgersh99 For This Post:
# 12  
Old 03-31-2011
Quote:
ip = 10.2.3.4$
------------$
Hardware= [8^@0^@0^@0^@]$
Errors= [0161]$
Full= [99]$
SW Version= [1^@.^@8^@.^@1^@.^@1^@0^@9^@]$
Test= [118]$
------------$
ip = 10.2.3.8$
------------$
Hardware= [4^@0^@0^@0^@]$
Errors= [0161]$
Full= [69]$
SW Version= [1^@.^@8^@.^@1^@.^@1^@0^@9^@]$
Test= [118]$
---------- Post updated at 02:33 PM ---------- Previous update was at 02:33 PM ----------

This was output after running
Quote:
cat -vet myFile
# 13  
Old 03-31-2011
no, I meant cat -vet ORIGINALfile.
Also please post your modified script.
This User Gave Thanks to vgersh99 For This Post:
# 14  
Old 03-31-2011
Modified script:

Quote:
#!/bin/bash

awk '
BEGIN {
FS="([[]|[]])"
}

function hex2dec(h, i,x,v){
h=tolower(h);sub(/^0x/,"",h)
for(i=1;i<=length(h);++i){
x=index("0123456789abcdef",substr(h,i,1))
v=(16*v)+x-1
}
return v
}

function hex2str(h) {
printf("%c", hex2dec(h))
}
/^(--|ip|Last)/ {print; next}

/^(Hardware|SW Version)=/ {
printf("%s",$1 "[")
n=split($2, vA,OFS)
for(i=1;i<=n;i++)
printf("%c%s", hex2str(vA[i]), (i==n)? "]"ORS:"")
next
}
/^(Errors|Full|Test)=/{
printf("%s",$1 "[")
n=split($2, vA,OFS)
for(i=1;i<=n;i++)
printf("%d%s", hex2dec(vA[i]), (i==n)? "]"ORS:"")
}' sample.log >temp.log
Output after running
Quote:
cat -vet
on original data file Sample.log
Quote:
ip = 10.2.3.4$
------------$
Hardware= [ 38 30 30 30 ]$
Errors= [ 00 a1 ]$
Full= [ 63 ]$
SW Version= [ 31 2e 38 2e 31 2e 31 30 39 ]$
Test= [ 76 ]$
------------$
ip = 10.2.3.8$
------------$
Hardware= [ 34 30 30 30 ]$
Errors= [ 00 a1 ]$
Full= [ 45 ]$
SW Version= [ 31 2e 38 2e 31 2e 31 30 39 ]$
Test= [ 76 ]$
---------- Post updated at 02:53 PM ---------- Previous update was at 02:48 PM ----------

Sorry here is with code tags:

Quote:
Code:
#!/bin/bash

awk '
BEGIN {
  FS="([[]|[]])"
}

function hex2dec(h,  i,x,v){
  h=tolower(h);sub(/^0x/,"",h)
  for(i=1;i<=length(h);++i){
    x=index("0123456789abcdef",substr(h,i,1))
    v=(16*v)+x-1
  }
  return v
}

function hex2str(h) {
  printf("%c", hex2dec(h))
}
/^(--|ip|Last)/ {print; next}

/^(Hardware|SW Version)=/ {
  printf("%s",$1 "[")
  n=split($2, vA,OFS)
  for(i=1;i<=n;i++)
     printf("%c%s", hex2str(vA[i]), (i==n)? "]"ORS:"")
  next
}
/^(Errors|Full|Test)=/{
  printf("%s",$1 "[")
  n=split($2, vA,OFS)
  for(i=1;i<=n;i++)
     printf("%d%s", hex2dec(vA[i]), (i==n)? "]"ORS:"")
}' sample.log >temp.log

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Convert Hex to Ascii in a Ascii file

Hi All, I have an ascii file in which few columns are having hex values which i need to convert into ascii. Kindly suggest me what command can be used in unix shell scripting? Thanks in Advance (2 Replies)
Discussion started by: HemaV
2 Replies

2. Shell Programming and Scripting

Converting decimal to hex

How to convert decimal value to hex and than take 1st digits as variable sample data 84844294,5,6 51291736,2,3 84844294,5,6 51291736,2,3 i can use {printf "%x,%d\n",$1,$2} but than i want to filter base on 1st hex digit 1st recrd (1 Reply)
Discussion started by: before4
1 Replies

3. 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

4. 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

5. Programming

ascii to hex

Hello guys, i want to convert a text file to hex and have written this code : int main(int argc, char **argv) { ifstream file; string fileName = "CODEZ"; file.open(fileName.c_str()); // oeffen im Text-Modus if(file) {... (5 Replies)
Discussion started by: Kingbruce
5 Replies

6. 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

7. 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

8. UNIX for Advanced & Expert Users

Converting Binary decimal coded values to Ascii Values

Hi All, Is there any command which can convert binary decimal coded values to ascii values... i have bcd values like below оооооооооооо0о-- -v - Pls suggest a way to convert this. Thanks, Deepti.Gaur (3 Replies)
Discussion started by: gaur.deepti
3 Replies

9. UNIX for Dummies Questions & Answers

Ascii To Hex

How will I display on screen a UNIX ascii file with its HEX equivalent. I want to check whether 0D 0A is coming at the end of the file which I am generating from UNIX. (1 Reply)
Discussion started by: augustinep
1 Replies

10. Programming

converting hex to ascii

Hi everyone! I was wondering if anyone knows how to change hex code back into ascii. when i process a form: " / " turn to " %2F " " @ " turns to " %40 " " ' " turns to " %27 " " ( " turns to " %28 " " ) " turns to " %29 " this is my code so far: order.txt thanks, primal p.s.... (1 Reply)
Discussion started by: primal
1 Replies
Login or Register to Ask a Question