我的文件看起来像这样:
STH STH STH STH
232
STH STH STH STH
2342
2342
等
更具体一点。它包含以下行:4个单词全部大写或数字,用空格或'\n'
分隔。
我想只将包含数字的行更改为十六进制数。我曾尝试在awk
编写脚本,但我放弃了。
解决方案,任何人?
答案 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
如果那不是您想要的,那么请编辑您的问题以澄清您的要求,并提供预期的输出以与您发布的样本输入一起使用。