品质价值作品:
$ printf "%d\n" \'A
65
$
Run Code Online (Sandbox Code Playgroud)
我有两个问题,第一个是最重要的:
小智 58
一条线
printf "\x$(printf %x 65)"
Run Code Online (Sandbox Code Playgroud)
两行
set $(printf %x 65)
printf "\x$1"
Run Code Online (Sandbox Code Playgroud)
如果你不介意使用,这是一个 awk
awk 'BEGIN{printf "%c", 65}'
Run Code Online (Sandbox Code Playgroud)
小智 24
这有效(使用八进制值):
$ printf '%b' '\101'
A
Run Code Online (Sandbox Code Playgroud)
即使(某些:不要超过7)序列:
$ printf '%b' '\'{101..107}
ABCDEFG
Run Code Online (Sandbox Code Playgroud)
允许(十进制)任何范围内的值的一般构造是:
$ printf '%b' $(printf '\\%03o' {65..122})
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz
Run Code Online (Sandbox Code Playgroud)
或者您可以使用字符的十六进制值:
$ printf '%b' $(printf '\\x%x' {65..122})
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz
Run Code Online (Sandbox Code Playgroud)
您还可以使用xxd返回字符(使用十六进制值):
$ echo "41" | xxd -p -r
A
Run Code Online (Sandbox Code Playgroud)
也就是说,一个动作与另一个动作相反:
$ printf "%x" "'A" | xxd -p -r
A
Run Code Online (Sandbox Code Playgroud)
并且还可以同时使用几个十六进制值:
$ echo "41 42 43 44 45 46 47 48 49 4a" | xxd -p -r
ABCDEFGHIJ
Run Code Online (Sandbox Code Playgroud)
或序列(此处使用printf获取十六进制值):
$ printf '%x' {65..90} | xxd -r -p
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Run Code Online (Sandbox Code Playgroud)
甚至使用awk:
$ echo 65 | awk '{printf("%c",$1)}'
A
Run Code Online (Sandbox Code Playgroud)
即使是序列:
$ seq 65 90 | awk '{printf("%c",$1)}'
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Run Code Online (Sandbox Code Playgroud)
对于这种转换,我使用perl:
perl -e 'printf "%c\n", 65;'
Run Code Online (Sandbox Code Playgroud)
一种选择是使用十六进制或八进制表示法直接输入您感兴趣的字符:
printf "\x41\n"
printf "\101\n"
Run Code Online (Sandbox Code Playgroud)
对于你的第二个问题,似乎领先引用语法(\'A)特定于printf:
如果前导字符是单引号或双引号,则该值应为单引号或双引号后字符的基础代码集中的数值.
来自http://pubs.opengroup.org/onlinepubs/009695399/utilities/printf.html
小智 7
如果你想保存字符的ASCII值:(我在BASH中做了这个并且它工作了)
{
char="A"
testing=$( printf "%d" "'${char}" )
echo $testing}
Run Code Online (Sandbox Code Playgroud)
输出:65
对于大写字母:
i=67
letters=({A..Z})
echo "${letters[$i-65]}"
Run Code Online (Sandbox Code Playgroud)
输出:
C
| 归档时间: |
|
| 查看次数: |
113515 次 |
| 最近记录: |