一連の文字印刷

一連の文字印刷

私の最終目標は、端末でさまざまなフォントをテストするために使用できるテキストブロックを作成することです。基本的に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

しかし、私はそれらをすべて入力したくありません。いくつかの16進数を生成するためにprintfサブシェルを使用できることを知っています。seq

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 1:

$ 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、異常:ksh93rzsh

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

関連情報