Reputation: 25
Here's a input file:
some data1 blah blah blah
some data2 blah blah bllah blah
Result HEX: 1ABC
Name......: Some name 1
-------------------------------------------
some random data1 blah blah blah bl
some random data2 blah blah bl
some random data3 blah blah blah blah bla
some random data4 blah blah blah bla
Result HEX: 2BCD
Name......: Whatever name 2
-------------------------------------------
some random data1 blah blah blah blah
some random data2 blah blah blah blah blah
some random data3 blah blah blah bl
Result HEX: 3CDE
Name......: Some name 3
-------------------------------------------
I need to achieve this:
some data1 blah blah blah
some data2 blah blah bllah blah
Result HEX: 1ABC
Result DEC: 6844
Name......: Some name 1
-------------------------------------------
some random data1 blah blah blah bl
some random data2 blah blah bl
some random data3 blah blah blah blah bla
some random data4 blah blah blah bla
Result HEX: 2BCD
Result DEC: 11213
Name......: Whatever name 2
-------------------------------------------
some random data1 blah blah blah blah
some random data2 blah blah blah blah blah
some random data3 blah blah blah bl
Result HEX: 3CDE
Result DEC: 15582
Name......: Some name 3
-------------------------------------------
So after every line in file matching "Result HEX: ", I have to append a new line with "Result DEC: " with calculated hexadecimal value to decimal. I've got some small embeded linux (busybox based), so I found I can convert hex2dec using this command:
# printf "%d\n" 0x1ABC
6844
Could anybody help?... It's too big chalange for me :( Thanks!
Upvotes: 0
Views: 58
Reputation: 67507
gawk
to the rescue!
$ gawk --non-decimal-data '1; /HEX/{printf "%s DEC: %d\n", $1,"0x"$3}' file
some data1 blah blah blah
some data2 blah blah bllah blah
Result HEX: 1ABC
Result DEC: 6844
Name......: Some name 1
-------------------------------------------
some random data1 blah blah blah bl
some random data2 blah blah bl
some random data3 blah blah blah blah bla
some random data4 blah blah blah bla
Result HEX: 2BCD
Result DEC: 11213
Name......: Whatever name 2
-------------------------------------------
some random data1 blah blah blah blah
some random data2 blah blah blah blah blah
some random data3 blah blah blah bl
Result HEX: 3CDE
Result DEC: 15582
Name......: Some name 3
-------------------------------------------
you can fine tune matching by replacing pattern with $2=="HEX"
Upvotes: 2