Print hex Ip address in decimal format inside awk script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Print hex Ip address in decimal format inside awk script
# 1  
Old 12-07-2015
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

Code:
echo "d djjd:C0 A8 8C 64 00 00 00" | 
awk '{a=gensub(/.+:(..) (..) (..) (..).+/,"\\1 \\2 \\3 \\4","g");split(a,b);printf("%d.%d.%d.%d","0x"b[1],"0x"b[2],"0x"b[3],"0x"b[4])}'
0.0.0.0

Thanks in advance,
# 2  
Old 12-07-2015
# 3  
Old 12-07-2015
Why that complicated? Try
Code:
echo "d djjd:C0 A8 8C 64 00 00 00" |  awk '{sub (/:/," "); printf("%d.%d.%d.%d\n","0x"$3,"0x"$4,"0x"$5,"0x"$6)}'
192.168.140.100

---------- Post updated at 17:46 ---------- Previous update was at 17:39 ----------

Or
Code:
echo "d djjd:C0 A8 8C 64 00 00 00" |  awk '{X="0x"; sub (/:/," "); printf("%d.%d.%d.%d\n", X$3, X$4, X$5, X$6)}'
192.168.140.100

# 4  
Old 12-07-2015
Thanks disedorgue/RudiC.

I've tried both solutions of RudiC and with both I get 0.0.0.0. I've tried in GNU/Linux, Cygwin and CentOS 6.7.

I'm not sure why.

Thanks in advance
# 5  
Old 12-07-2015
Post your attempts.
# 6  
Old 12-07-2015
When I try with your solutions there is no more as output like 0.0.0.0

When I try with my script I get the same 0.0.0.0.

I've done the following tests and it works when don't go the commas and work with single comma and without comma. It seems the issue begins when I try to convert variables that contain hex values.

Code:
$ echo "d djjd:C0 A8 8C 64 00 00 00" | awk '{sub (/:/," "); printf("%d", 0xC0)}'
192
$ echo "d djjd:C0 A8 8C 64 00 00 00" | awk '{sub (/:/," "); printf("%d", '0xC0')}'
192
$ echo "d djjd:C0 A8 8C 64 00 00 00" | awk '{sub (/:/," "); printf("%d", "0xC0")}'
0
$ awk 'BEGIN{Z=C0; printf("%d", 0xZ)}'
0

# 7  
Old 12-07-2015
Above is diametrically opposed to what I get:
Code:
echo "d djjd:C0 A8 8C 64 00 00 00" | awk '{sub (/:/," "); printf("%d", 0xC0)}'
0
echo "d djjd:C0 A8 8C 64 00 00 00" | awk '{sub (/:/," "); printf("%d", '0xC0')}'
0
echo "d djjd:C0 A8 8C 64 00 00 00" | awk '{sub (/:/," "); printf("%d", "0xC0")}'
192

The variables or constants need to be string "0x" plus a hex value string, e.g. "C0". That why your fourth attempt doesn't work - Z is assigned the number 0.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

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

2. Shell Programming and Scripting

Awk - Summation in Proper decimal Format

Hi I am executing below command to do summation on 46th coloumn. cat File1| awk -F"|" '{p += $46} END { printf"Column Name | SUM | " p}' I am getting output as Column Name | SUM | 1.01139e+10 Here I want output in Proper decimal format. Can someone tell me what change is required for same? (1 Reply)
Discussion started by: sanranad
1 Replies

3. Shell Programming and Scripting

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

The file contains code like the below and need to convert each one into a decimal 00 00 00 04 17 03 06 01 So the output should come as 0 0 0 4 23 3 6 1 (24 Replies)
Discussion started by: necro98
24 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. Shell Programming and Scripting

IP address to decimal format conversion

I have a file which consist of some class 4 IP address as 172.16.112.50 172.16.112.50 172.16.112.50 172.16.112.100 192.168.1.30 172.16.112.100 172.16.112.50 172.16.112.50 172.16.112.50 i want to store them in pure decimal notations instead of the given dotted decimal formats e.g.... (2 Replies)
Discussion started by: vaibhavkorde
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

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

10. Shell Programming and Scripting

Hex to Decimal Convertion

Dear all, I have a file like this. EE48 4473 7FC9 EE48 102C D23 EE48 4DD 27D EE48 0 0 EE48 3FFE 854 F230 DC6 ... (1 Reply)
Discussion started by: Nayanajith
1 Replies
Login or Register to Ask a Question