ASCII(1)

NAME
ascii - report character aliases

SYNOPSIS

ascii [-d] [-x] [-o] [-h] [-v] [char-alias]

OPTIONS

Called with no options, ascii behaves like "ascii -h". Options are as follows:

-t
    Script-friendly mode, emits only ISO/decimal/hex/octal/binary encodings of the character.

-s
    Parse multiple characters. Convenient way of parsing strings.

-a
    Print in vertical aspect (4 columns by 16 rows) rather than 16x4. This option combines only with -d -o -x -b and must precede them.

-d
    Ascii table in decimal. If arguments follow, interpret them as decimal values and print only the corresponding character records.

-x
    Ascii table in hex. If arguments follow, interpret them as hexadecimal values and print only the corresponding character records.

-o
    Ascii table in octal. If arguments follow, interpret them as octal values and print only the corresponding character records.

-b
    Ascii table in binary. If arguments follow, interpret them as binary values and print only the corresponding character records.

-h, -?
    Show summary of options and a simple ASCII table.

-v
    Show version of program.

DESCRIPTION

Characters in the ASCII set can have many aliases, depending on context. A character’s possible names include:

    • Its bit pattern (binary representation).

    • Its hex, decimal and octal representations.

    • Its teletype mnemonic and caret-notation form (for control chars).

    • Its backlash-escape form in C (for some control chars).

    • Its printed form (for printables).

    • Its full ISO official name in English.

    • Its ISO/ECMA code table reference.

    • Its name as an HTML/SGML entity.

    • Slang and other names in wide use for it among hackers.

This utility accepts command-line strings and tries to interpret them as one of the above. When it finds a value, it prints all of the names of the character. The constructs in the following list can be used to specify character values. If an argument could be interpreted in two or more ways, names for all the different characters it might be are dumped.

character
    Any character not described by one of the following conventions represents the character itself.

^character
    A caret followed by a character.

\[abfnrtv0]: A backslash followed by certain special characters (abfnrtv).

mnemonic
    An ASCII teletype mnemonic.

hexadecimal
    A hexadecimal (hex) sequence consists of one or two case-insensitive hex digit characters (01234567890abcdef). To ensure hex interpretation use one of the prefixes h, 0x, x, or \x.

decimal
    A decimal sequence consists of one, two or three decimal digit characters (0123456789). To ensure decimal interpretation use one of the prefixes d, 0d, or \d.

octal
    An octal sequence consists of one, two or three octal digit characters (01234567). To ensure octal interpretation use one of the prefixes 0o, o, or \o.

bit pattern
    A bit pattern (binary) sequence consists of one to eight binary digit characters (01). To ensure bit interpretation use one of the prefixes 0bm b, or \b.

ISO/ECMA code
    An ISO/ECMA code sequence consists of one or two decimal digit characters, a slash, and one or two decimal digit characters.

name
    An official ASCII or (unofficial) slang name.

:class:
    A named POSIX character class.

The slang names recognized and printed out are from a rather comprehensive list that first appeared on USENET in early 1990 and has been continuously updated since. Mnemonics recognized and printed include the official ASCII set, some official ISO names (where those differ) and a few common-use alternatives (such as NL for LF). HTML/SGML entity names are also printed when applicable. All comparisons are case-insensitive, and dashes are mapped to spaces. Any unrecognized arguments or out of range values are silently ignored. Note that the <option>-s</option> option will not recognize "long" names, as it cannot differentiate them from other parts of the string.

For correct results, be careful to stringize or quote shell metacharacters in arguments (especially backslash).

This utility is particularly handy for interpreting cc(1)'s ugly octal "invalid-character" messages, or when coding anything to do with serial communications. As a side effect it serves as a handy base-converter for random 8-bit values.

AUTHOR

Eric S. Raymond November 1990 (home page at <http://www.catb.org/~esr/). Ioannis E. Tambouras added command options and minor enhancements. Brian J. Ginsbach fixed several bugs and expanded the man page. David N. Welton added the <option>-s</option> option. Matej Vela corrected the ISO names. Dave Capella contributed the idea of listing HTML/SGML entities.