3

多くの RGB カラー コードを 10 進数で含むテキスト ファイルがあります。例えば

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

各行を16進形式に変換したい(望ましい出力):

00,00,00
00,03,15
00,07,30
00,08,45

使用できることはわかっていますが、069 は変換できないため機能しませんprintf "%.2x,%.2x,%.2x\n" 000 010 69printf "%.2x,%.2x,%.2x\n" 000 010 069

仕事には妥当なツールだと思いawkましたが、069などの小数を変換するのと同じ問題に直面すると思います.

perl -le '$hex = sprintf("%.2x,%.2x,%.2x",005,69,255); print $hex'069にも同じ問題があります

4

3 に答える 3

5

引数間のコンマが足りないだけです:

echo "000,010,069" | awk -F ',' '{ printf "%02X,%02X,%02X\n", $1, $2, $3 }'

生成:

00,0A,45

Mac OS X (BSD awk) と Linux (GNU awk) の両方で検証済み。

于 2013-06-12T11:01:38.963 に答える