cat

concatenate and display text files 

Command


SYNOPSIS

cat [-su] [-v[et]] [-U[[[c][lb8oa]][p[lb8oa]]]] [file ...]


DESCRIPTION

cat displays and concatenates text files. It copies each file argument to the standard output. If you specify no files or give - as a file name, cat reads the standard input.

Besides normal ASCII text files, cat also works on UTF-8 files and 16-bit wide Unicode files. Such files normally begin with a multiple-byte marker indicating whether the file's contents are Unicode big-endian, Unicode little-endian, or UTF-8. Such files are detected automatically by cat; however, when the multiple-byte marker is missing you can use the -U option or the TK_STDIO_DEFAULT_INPUT_FORMAT/TK_STDIO_DEFAULT_OUTPUT_FORMAT environment variables to force any file to be treated as a Unicode or UTF-8 file.

Note:

With the cat utility, the TK_STDIO_DEFAULT_INPUT_FORMAT and TK_STDIO_DEFAULT_OUTPUT_FORMAT environment variables are ignored if the -U option is used to explicitly set the input or output format. The formats specified with the -U override the formats indicated by the environment variables.

Normally, cat's output format defaults to the format of the first file it displays unless the -U option or the TK_STDIO_DEFAULT_OUTPUT_FORMAT environment variable is used to override the output format. For more details on this and other Unicode-related file handling issues see the unicode reference page.

Note:

When using the cat utility with shell redirection to copy binary files, cat normally performs a raw copy, preserving the 8-bit integrity of the file. The multiple-byte marker that begins some 16-bit wide character and UTF-8 Unicode files is also preserved. Because of this, concatenating multiple binary files (including Unicode files) is likely to produce results that few utilities can interpret. This behavior, however, is overridden by the -U option if its specifiers apply to the output produced.

Options

-e 

displays a $ character at the end of each line. This option only works if you also specify -v.

-s 

does not produce an error message if cat cannot find or read a specified file.

-t 

displays tabs as ^I. This option only works if you also specify -v.

-U[[[c][lb8oa]][p[lb8oa]]] 

specifies the input format of any file missing the initial multiple-byte marker, the output format produced, or both.

When c is specified, the specifiers that follow it apply to the input consumed.

When p is specified, the specifiers that follow it apply to the output produced.

When neither c nor p are specified, the remaining -U specifiers apply to the input consumed.

When both c and p are specified, the remaining -U arguments apply to both input and output.

The remaining specifiers indicate the format of the characters read from input or written to output (as determined by c and p):

l     little-endian 16-bit wide characters
b     big-endian 16-bit wide characters
8     UTF-8 characters
a     ASCII characters from the ANSI code page
o     ASCII characters from the OEM code page

When multiple format specifiers can be associated with either c or p, the last appropriate one given on the command for each of c and p is used. For example:

-Ucoapl8

is the same as:

-Ucap8

When a p specifier is given without a c specifier and format specifiers are given before the p specifier, those format specifiers apply to the input. For example:

-Uopl

is the same as:

-Ucopl

When c or p is specified with no format specifies, little endian 16-bit wide characters are used by default for either input or output, as appropriate.

As an alternative to specifying formats for both input and output with the same -U option, you can specify the -U option multiple times. For example, the following are identical:

-Uca -Upb
-Ucapb

Note:

The -U specifiers are actually case-insensitive. For example, the following are all identical in their behavior:

-Ucl
-UcL
-UCl
-UCL

-u 

does not buffer output.

-v 

displays all characters including those that are unprintable. If the character is unprintable, then one of three representations is used. M-X is used for character X if the significant bit is set; ^X is used for the control character X (for example, ^A for CTRL-A), and \xxx represents a character with the octal value xxx. The last form is used if neither of the other representations can be used.


ENVIRONMENT VARIABLES

TK_STDIO_DEFAULT_INPUT_FORMAT 

Sets the default input format for files that don't have the initial multibyte marker. The value must be one of those listed in the File Character Formats section of the unicode reference page.

TK_STDIO_DEFAULT_OUTPUT_FORMAT 

Sets the default output format. Normally the format of the first file read is used as the default output format. The value must be one of those listed in the File Character Formats section of the unicode reference page.


DIAGNOSTICS

Possible exit status values are:

0 

Successful completion.

1 

Failure due to any of the following:

— inability to open the input file
— end-of-file detected on the standard output
— the input file is the same as the output file
2 

Unknown option specified on the command line.


PORTABILITY

POSIX.2. x/OPEN Portability Guide 4.0. All UNIX systems. Windows 8.1. Windows Server 2012 R2. Windows 10. Windows Server 2016. Windows Server 2019. Windows 11. Windows Server 2022.

The -e, -s, -t, -U, and -v options are extensions to the POSIX and x/OPEN standards.


AVAILABILITY

PTC MKS Toolkit for Power Users
PTC MKS Toolkit for System Administrators
PTC MKS Toolkit for Developers
PTC MKS Toolkit for Interoperability
PTC MKS Toolkit for Professional Developers
PTC MKS Toolkit for Professional Developers 64-Bit Edition
PTC MKS Toolkit for Enterprise Developers
PTC MKS Toolkit for Enterprise Developers 64-Bit Edition


SEE ALSO

Commands:
more, pg

Miscellaneous:
unicode


PTC MKS Toolkit 10.4 Documentation Build 39.