如何仅使用基本 awk 打印字符的 ASCII 值
我只需要在 awk 中打印给定字符的 ASCII 值。
下面的代码给出 0
作为输出:
echo a | awk '{ printf("%d \n",$1); }'
I need to print the ASCII value of the given character in awk only.
Below code gives 0
as output:
echo a | awk '{ printf("%d \n",$1); }'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
仅使用基本的 awk(甚至不是 gawk,因此下面的内容应该适用于所有 BSD 和 Linux 变体):
这是相反的方向(为了完整性):
基本前提是使用查找表。
Using only basic awk (not even gawk, so the below should work on all BSD and Linux variants):
Here's the opposite direction (for completeness):
Basic premise is to use a lookup table.
有关可以使用的序数函数,请参阅 awk 手册。但由于您使用的是 awk,因此您应该使用某种版本的 shell,例如 bash。那么为什么不使用 shell 呢?
see the awk manual for ordinal functions you can use. But since you are using awk, you should be on some version of shell, eg bash. so why not use the shell?
看来这并不是一个小问题。我发现这种方法使用查找数组,它至少应该适用于 AZ:
It seems this is not a trivial problem. I found this approach using a lookup array, which should work for A-Z at least: