使用sed或awk将十进制数据字段转换为十六进制

时间:2014-12-06 19:36:55

标签: awk sed sh

谁可以更正此命令以获得所需的输出:

输入:" 1 | 2 | 30 | 4"

echo "1|2|30|4" | awk -F, -v OFS=| '{print $1,$2; printf "%04X", $3; print $4}'

预期输出:

1|2|001E|4

最好的问候。

2 个答案:

答案 0 :(得分:1)

$ echo "1|2|30|4" |
    awk -F'|' -v OFS='|' '{print $1, $2, sprintf("%X", $3), $4}'
1|2|1E|4

答案 1 :(得分:1)

echo "1|2|30|4" | awk -F"|" '{printf "%s|%s|%04X|%s", $1, $2, $3, $4}'

输出:

1|2|001E|4