如何使用AWK将十进制数字转换为十六进制格式输出
十进制流转十六进制awk命令修改方案
你可以使用awk内置的printf函数配合十六进制格式控制符实现转换,同时遍历所有输入字段完成批量转换。
最终可用命令
echo "100 2000 599 232" | awk '{ for(i=1;i<=NF;i++) { printf "0x%X%s", $i, (i==NF ? "\n" : " ") } }'
命令说明
- 遍历逻辑:
for(i=1;i<=NF;i++)遍历当前行的所有字段,内置变量NF代表当前行的字段总数量,默认按空格分割字段 - 格式转换:
%X是printf的十六进制格式控制符,会将十进制数值转换为带大写字母的十六进制字符串;如果需要小写字母可以替换为%x - 输出控制:判断如果是最后一个字段就输出换行符,否则输出空格分隔,避免行尾出现多余空格
执行上述命令后输出的结果为:0x64 0x7D0 0x257 0xE8,和你预期的格式一致(你示例中的0x74D为笔误,2000对应的正确十六进制值为0x7D0)。
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

