sh-使用sed或awk修改文件并进行十六进制2 dec转换
这是一个输入文件:sh-使用sed或awk修改文件并进行十六进制2 dec转换,awk,sed,sh,Awk,Sed,Sh,这是一个输入文件: 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 bl
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
-------------------------------------------
我需要做到这一点:
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
-------------------------------------------
所以,在文件中的每一行匹配“Result HEX:”之后,我必须添加一行“Result DEC:”,并将计算出的十六进制值添加到十进制。
我有一些小型嵌入式linux(基于busybox),因此我发现我可以使用以下命令转换hex2dec:
# printf "%d\n" 0x1ABC
6844
有人能帮忙吗?。。。它对我来说太大了:(
谢谢!
gawk
向救援人员致意
$ 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
-------------------------------------------
您可以通过将模式替换为
$2==“HEX”
gawk
来对匹配进行微调,以进行拯救
$ 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
-------------------------------------------
您可以通过使用
$2==“HEX”
替换模式来微调匹配!这太简单了!!非常感谢:)哦!那太容易了!!非常感谢:)