Convert hex to decimal or reverse is better?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Convert hex to decimal or reverse is better?
# 1  
Old 01-11-2010
Question 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 lines like this:

300000001#1000080#117#ACT##f

So the A should be ACT or ACT should be A in the target format and f at the $6 is the hexa which in the other format Y#Y#Y#Y# = 1111.

So please help me!
# 2  
Old 01-12-2010
can not understand the data you provide what is Y and why it is = 1111

kindly provide some data from your files.
# 3  
Old 01-12-2010
Y means Yes which is 1 and N means No = 0

f means YYYY = 1111

Quote:
Originally Posted by ahmad.diab
can not understand the data you provide what is Y and why it is = 1111

kindly provide some data from your files.
# 4  
Old 01-13-2010
this conversion is from binary to hex or vice versa not from decimal to hex!

SmilieSmilieSmilie

---------- Post updated at 20:58 ---------- Previous update was at 19:14 ----------

use below:-

Code:
bash-3.00$ IFS="#"
while read -a Line
do
x="${Line["${#Line[@]}-1"]}"
z=$(echo $x | tr '[a-z]' '[A-Z]')
y=$(echo "ibase=16 ; obase=2 ; $z " | bc)
O=$(echo $y | sed -e 's/1/#Y/g' -e 's/0/#N/g')
Line["${#Line[@]}-1"]="$O"
echo "${Line[*]//" "/#}"
done < infile.txt

Code:
cat infile.txt
300000001#1000080#117#ACT##f

Code:
cat outfile.txt
300000001#1000080#117#ACT##Y#Y#Y#Y

Hope this is what you want... really it take me a lot of time to do it.

SmilieSmilieSmilieSmilieSmilieSmilie

---------- Post updated 01-13-10 at 10:00 ---------- Previous update was 01-12-10 at 20:58 ----------

Axel82:- if you want to replace ACT to A after my code output use gsub function in awk.

What about the code is this what you want or not?


Last edited by ahmad.diab; 01-13-2010 at 03:56 AM..
# 5  
Old 01-13-2010
for vice versa of the above
i think this should work

Code:
awk '
BEGIN {
FS = "#"
arr["NNNN"]="0";arr["NNNY"]="1";arr["NNYN"]="2";arr["NNYY"]="3"
arr["NYNN"]="4";arr["NYNY"]="5";arr["NYYN"]="6";arr["NYYY"]="7"
arr["YNNN"]="8";arr["YNNY"]="9";arr["YNYN"]="A";arr["YNYY"]="B"
arr["YYNN"]="C";arr["YYNY"]="D";arr["YYYN"]="E";arr["YYYY"]="F" }
 
NR==FNR{a["$1"]=$2"#"$3;next}{$2="ACT";print $1"#"a["$1"]"#"$2"##"arr[$3$4$5$6]}' f3 f2

/home->cat f3
300000001#1000080#117#ACT##f
/home->cat f2
300000001#A#Y#Y#Y#Y
/home->

Please check once.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

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

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

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

Converting hex to ascii/decimal

I am writing a bash script to do some parsing on a log and I am running into a problem when it comes to converting only certain sections of the file from hex to ascii or hex to decimal. Data Example: The hex values after Hardware and SW Version I need to convert from Hex to ASCII and the... (16 Replies)
Discussion started by: Shiftkey
16 Replies

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

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