我有一個包含大量十進制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