[英]Hex character in BEGIN block
我可以在进程块中打印十六进制字符
$ awk '{printf "%c", $0}' <<< 0x21
!
但是,相同的字符不会在BEGIN块中打印
$ awk 'BEGIN {printf "%c", 0x21}'
0
如何在BEGIN块中打印十六进制字符?
当读取字符串时,awk将识别十六进制数字。
当读取数字时,awk将无法识别十六进制数字,它将从第一个非数字开始抛出所有内容。
因此,对于第一个示例, $0
是一个字符串,一切都很好。 在第二个例子中, x21
被抛出并且剩下0
。 解决方法是将0x21
作为字符串传递
$ awk 'BEGIN {printf "%c", +"0x21"}'
!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.