我有一个包含大量十进制RGB颜色代码的文本文件。例如Linux/awk将包含十进制的文件转换为十六进制
000,000,000
000,003,025
000,007,048
000,010,069
000,014,089
000,017,108
000,020,125
000,024,140
000,027,155
我想每一行转换为十六进制格式(期望输出):
00,00,00
00,03,15
00,07,30
00,08,45
我知道我可以使用printf "%.2x,%.2x,%.2x\n" 000 010 69
然而printf "%.2x,%.2x,%.2x\n" 000 010 069
不起作用为069不是可转换。
我想awk
将作业合理的刀具,但我想我会面临同样的问题转换小数,例如069等
perl -le '$hex = sprintf("%.2x,%.2x,%.2x",005,69,255); print $hex'
也有同样的问题,用069
请注意,“printf”%x \ n“010”比“printf”%x \ n“069”更危险,因为它默默地给出了您不期望的结果,而不是因为错误而退出。您可以使用“%02x”填充十六进制数字。不确定最好的解释方式是将C型的八进制数解释为十进制数。 – svk
可能有一些帮助:'bc <<<“obase = 16; 069”'。 – Rubens