awk中实现ord函数功能

时间:2021-05-22

在awk中并未直接提供ord函数,所以在将某个字符转换为码时,需要自己来实现

复制代码 代码如下:
awk 'BEGIN{for (i = 0; i < 256; ++i) {ord[sprintf("%c", i)] = i;} }' ' { print ord['a']; ord ['b']; }'

这里主要是构造了ord为key,val的数据结构,key为char字符,val对应的ascii码

附:awk得到字母的ASC值实现
复制代码 代码如下:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; cat foo.awk
#!/bin/awk -f

BEGIN {
for (ii = 0; ii < 256; ++ii) {
ch = sprintf("%c", ii);
ascii[ch] = ii;
}

for (ii = 1; ii < ARGC; ii++) {
print "ord(" ARGV[ii] " = " ascii[ARGV[ii]];
}
}
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; ./foo.awk a b c 1 2 3
ord(a) = 97
ord(b) = 98
ord(c) = 99
ord(1) = 49
ord(2) = 50
ord(3) = 51
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; bye

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章