这是我的示例文本文件:
可以看到,只有数字发生了改变。 最终的数字必须是两个字符长(RegEdit将其视为不同)。 行的顺序变化并不影响结果,但我认为使用不改变顺序的更“清晰”的解决方案会更好。 我不希望任何数字(无论十进制还是十六进制)超过2个字符,但考虑到这种可能性的解决方案将是最佳的(因为它是一种更通用的解决方案)。 我目前已经测试了:
$ cat RealVNC\ MRU.reg
"10"="Lamborghini-:1"
"16"="Terminus-"
"20"="Midnighter-:5915"
"35"="ThreepWood-:1"
"81"="Midnighter-:1"
"58"="Midnighter-"
我希望能将第一个字段(在""
之间的数字)的值从十进制转换为十六进制(这是Windows的.reg文件,所以我误认为数字是十进制,现在文件太长了,无法手动编辑)。
需要获得的示例结果:
$ cat Hex\ RealVNC\ MRU.reg
"0A"="Lamborghini-:1"
"10"="Terminus-"
"14"="Midnighter-:5915"
"23"="ThreepWood-:1"
"51"="Midnighter-:1"
"3A"="Midnighter-"
可以看到,只有数字发生了改变。 最终的数字必须是两个字符长(RegEdit将其视为不同)。 行的顺序变化并不影响结果,但我认为使用不改变顺序的更“清晰”的解决方案会更好。 我不希望任何数字(无论十进制还是十六进制)超过2个字符,但考虑到这种可能性的解决方案将是最佳的(因为它是一种更通用的解决方案)。 我目前已经测试了:
$ cat RealVNC\ MRU.reg | awk -F \" '{print $2}'
10
16
20
35
81
58
但我不知道如何将十进制转换为十六进制。
我通常使用Bash作为我的shell,但其他基于shell的解决方案(如Perl或Python)也可以接受。