awk将十进制数转换为字符串内的4位十六进制数

时间:2016-05-15 14:23:46

标签: bash awk

我的文件看起来像这样:

STH STH STH STH
232
STH STH STH STH
2342
2342

更具体一点。它包含以下行:4个单词全部大写或数字,用空格或'\n'分隔。

我想只将包含数字的行更改为十六进制数。我曾尝试在awk编写脚本,但我放弃了。

解决方案,任何人?

1 个答案:

答案 0 :(得分:0)

$ awk '$0+0==$0{ $0=sprintf("%x",$0) } 1' file
STH STH STH STH
e8
STH STH STH STH
926
926

或@Cyrus在下面的评论中提出:

$ awk '($0+0==$0){ $0=sprintf("%0.4x",$0) } 1' file
STH STH STH STH
00e8
STH STH STH STH
0926
0926

如果那不是您想要的,那么请编辑您的问题以澄清您的要求,并提供预期的输出以与您发布的样本输入一起使用。