【发布时间】:2021-01-26 04:41:06
【问题描述】:
只是为了确定,真的是使用 awk(至少是 Gnu awk)我可以转换吗:
从八进制到ASCII:
print "\101" # or a="\101"
A
从十六进制到 ASCII:
print "\x41" # or b="\x41"
B
但是从十进制到 ASCII 我必须:
$ printf "%c\n", 67 # or c=sprintf("%c", 67)
C
我错过的那个 RTFM(备忘录)中没有秘密 print "\?67"?
我正在尝试从$0="aabccc" 获取字符频率,例如:
for(i=141; i<143; i++) a=a gsub("\\"i, ""); print a
213
但使用小数(而不是上面示例中的八进制)。十进制方法似乎非常长:
$ cat foo
aabccc
$ awk '{for(i=97;i<=99;i++){c=sprintf("%c",i);a=a gsub(c,"")} print a}' foo
213
它被使用了here。
【问题讨论】: