我使用此命令将十进制数字转换为十六进制
( echo "obase=16" ; cat file.txt ) | bc
但是,在输出中,某些值的位数少于8
:
FFF95E13
7613
EE13
16613
6686E13
如果数字位数少于8
,我想在十六进制表示法的左边添加零作为填充字符。因此,其最终格式如下:
FFF95E13
00007613
0000EE13
00016613
06686E13
我可以使用python来做,但是我希望是否可以使用awk
或sed
吗?如果有一种方法可以转换为十六进制并添加前导零以确保所有值都是8
位,那会更好。
答案 0 :(得分:4)
也许您可以只使用awk来代替:
awk '{ printf "%08X\n", $1 }' file
这将以大写的十六进制打印每一行的第一列,零填充最多8个字符。
$ cat file
111
222
333
444
$ awk '{ printf "%08X\n", $1 }' file
0000006F
000000DE
0000014D
000001BC
答案 1 :(得分:1)
您可以直接通过redux-orm
来实现
printf
$ seq 100 25 200 | xargs printf "%08X\n"
00000064
0000007D
00000096
000000AF
000000C8
不能从文件中读取,您可以通过管道输入文件中的数据:
printf
或重定向:
$ cat file | xargs printf "%08X\n"
或放在末尾:
$ <file xargs printf "%08X\n"
尽管并没有为$ xargs printf "%08X\n" <file
解决方案增加太多...