打印一系列字符

打印一系列字符

我的最终目标是生成一个文本块,可用于在终端上测试各种字体。我想生成基本上是 ascii 图表的文件。从 1 到 255 的一系列字符就可以了,我不担心铃声、空格或任何东西,非常简单。

我知道如果我想输入所有数字,我可以这样做:

printf '\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a'
ABCDEFGHIJKLMNOPQRSTUVWXYZ

但我不想把它们全部打出来。我知道我可以使用printfandseq与子 shell 来生成一些十六进制

printf %x' ' `seq 65 90`
41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a

有人可以帮我把这些点联系起来吗?

我不需要正式的 ascii 表,但我想要几乎所有可见字符,这样我就可以更好地测试各种字体。

答案1

POSIX一:

$ awk 'BEGIN{for(n=33;n<=90;n++)printf "%c",n}'                              
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ

珀尔一:

$ perl -e 'print chr for 33..90'

答案2

也许像这样:

perl -e 'for(65..90) { printf "%c", $_ }'

printf(1)或者,如果您坚持在 Linux 上执行此操作:

printf $( printf '\\x%02x' $( seq 65 90 ) )

或者,在printf(1)*BSD 上:

printf $( printf '\\x%02x' $( jot - 65 90 1 ) )

答案3

bash >= 3.0,ksh93r及以上, zsh:

printf $( printf '\\x%02x' {65..90})

相关内容