如何在 CLI 中打印所有可打印的 ASCII 字符?

Lan*_*nes 29 shell character-encoding

如何在终端中列出所有可打印的 ASCII 字符?

Kei*_*ith 34

你可以做:

man ascii
Run Code Online (Sandbox Code Playgroud)

要查看整个 ascii 字符集,或者您可以直接运行命令ascii.

$ ascii
Usage: ascii [-dxohv] [-t] [char-alias...]
   -t = one-line output  -d = Decimal table  -o = octal table  -x = hex table
   -h = This help screen -v = version information
Prints all aliases of an ASCII character. Args may be chars, C \-escapes,
English names, ^-escapes, ASCII mnemonics, or numerics in decimal/octal/hex.

Dec Hex    Dec Hex    Dec Hex  Dec Hex  Dec Hex  Dec Hex   Dec Hex   Dec Hex  
  0 00 NUL  16 10 DLE  32 20    48 30 0  64 40 @  80 50 P   96 60 `  112 70 p
  1 01 SOH  17 11 DC1  33 21 !  49 31 1  65 41 A  81 51 Q   97 61 a  113 71 q
  2 02 STX  18 12 DC2  34 22 "  50 32 2  66 42 B  82 52 R   98 62 b  114 72 r
  3 03 ETX  19 13 DC3  35 23 #  51 33 3  67 43 C  83 53 S   99 63 c  115 73 s
  4 04 EOT  20 14 DC4  36 24 $  52 34 4  68 44 D  84 54 T  100 64 d  116 74 t
  5 05 ENQ  21 15 NAK  37 25 %  53 35 5  69 45 E  85 55 U  101 65 e  117 75 u
  6 06 ACK  22 16 SYN  38 26 &  54 36 6  70 46 F  86 56 V  102 66 f  118 76 v
  7 07 BEL  23 17 ETB  39 27 '  55 37 7  71 47 G  87 57 W  103 67 g  119 77 w
  8 08 BS   24 18 CAN  40 28 (  56 38 8  72 48 H  88 58 X  104 68 h  120 78 x
  9 09 HT   25 19 EM   41 29 )  57 39 9  73 49 I  89 59 Y  105 69 i  121 79 y
 10 0A LF   26 1A SUB  42 2A *  58 3A :  74 4A J  90 5A Z  106 6A j  122 7A z
 11 0B VT   27 1B ESC  43 2B +  59 3B ;  75 4B K  91 5B [  107 6B k  123 7B {
 12 0C FF   28 1C FS   44 2C ,  60 3C <  76 4C L  92 5C \  108 6C l  124 7C |
 13 0D CR   29 1D GS   45 2D -  61 3D =  77 4D M  93 5D ]  109 6D m  125 7D }
 14 0E SO   30 1E RS   46 2E .  62 3E >  78 4E N  94 5E ^  110 6E n  126 7E ~
 15 0F SI   31 1F US   47 2F /  63 3F ?  79 4F O  95 5F _  111 6F o  127 7F DEL
Run Code Online (Sandbox Code Playgroud)

  • 似乎在 macOS Sierra 中不可用 (2认同)

Pri*_*ley 21

尝试使用printf和像 ksh93、zsh 或 bash 这样的 shell:

for ((i=32;i<127;i++)) do printf "\\$(printf %03o "$i")"; done;printf "\n"
Run Code Online (Sandbox Code Playgroud)

也可以看看 : BASH FAQ


jll*_*gre 12

更多的awk是一个(纯)shell的解决方案,但无论如何都在这里:

awk 'BEGIN{for(i=32;i<127;i++)printf "%c",i; print}'
Run Code Online (Sandbox Code Playgroud)


slm*_*slm 5

手册页ascii也可用于获取如下列表:

$ man 7 ascii
ASCII(7)                  Linux Programmer's Manual                  ASCII(7)

NAME
       ascii - ASCII character set encoded in octal, decimal, and hexadecimal

DESCRIPTION
       ASCII  is  the American Standard Code for Information Interchange. 
       It is a 7-bit code.  Many 8-bit codes (such  as  ISO  8859-1,  the  
       Linux default  character set) contain ASCII as their lower half.  
       The international counterpart of ASCII is known as ISO 646.

       The following table contains the 128 ASCII characters.

       C program '\X' escapes are noted.

       Oct   Dec   Hex   Char                        Oct   Dec   Hex  Char
       ??????????????????????????????????????????????????????????????????????
       000   0     00    NUL '\0'                    100   64    40   @
       001   1     01    SOH (start of heading)      101   65    41   A
       002   2     02    STX (start of text)         102   66    42   B
       003   3     03    ETX (end of text)           103   67    43   C
       004   4     04    EOT (end of transmission)   104   68    44   D
       005   5     05    ENQ (enquiry)               105   69    45   E
       006   6     06    ACK (acknowledge)           106   70    46   F
       007   7     07    BEL '\a' (bell)             107   71    47   G
       010   8     08    BS  '\b' (backspace)        110   72    48   H
       011   9     09    HT  '\t' (horizontal tab)   111   73    49   I
       012   10    0A    LF  '\n' (new line)         112   74    4A   J
       013   11    0B    VT  '\v' (vertical tab)     113   75    4B   K
       014   12    0C    FF  '\f' (form feed)        114   76    4C   L
       015   13    0D    CR  '\r' (carriage ret)     115   77    4D   M
       016   14    0E    SO  (shift out)             116   78    4E   N
       017   15    0F    SI  (shift in)              117   79    4F   O
       020   16    10    DLE (data link escape)      120   80    50   P
       021   17    11    DC1 (device control 1)      121   81    51   Q
       022   18    12    DC2 (device control 2)      122   82    52   R
       023   19    13    DC3 (device control 3)      123   83    53   S
       024   20    14    DC4 (device control 4)      124   84    54   T
       025   21    15    NAK (negative ack.)         125   85    55   U
       026   22    16    SYN (synchronous idle)      126   86    56   V
       027   23    17    ETB (end of trans. blk)     127   87    57   W
       030   24    18    CAN (cancel)                130   88    58   X
       031   25    19    EM  (end of medium)         131   89    59   Y
       032   26    1A    SUB (substitute)            132   90    5A   Z
       033   27    1B    ESC (escape)                133   91    5B   [
       034   28    1C    FS  (file separator)        134   92    5C   \  '\\'
       035   29    1D    GS  (group separator)       135   93    5D   ]
       036   30    1E    RS  (record separator)      136   94    5E   ^
       037   31    1F    US  (unit separator)        137   95    5F   _
       040   32    20    SPACE                       140   96    60   `
    ...
    ...
Run Code Online (Sandbox Code Playgroud)