cat - concatenate and display files
/usr/bin/cat [-nbsuvet] [file...]
cat [-bdenstuvABDEST] [file...]
The cat utility reads each file in sequence and writes it on the
standard output. Thus:
example% cat file
prints file on your terminal, and:
example% cat file1 file2 >file3
concatenates file1 and file2, and writes the results
in file3. If no input file is given, cat reads from the
standard input file.
The cat built-in in ksh93 is associated with the /bin and
/usr/bin paths. It is invoked when cat is executed without a
pathname prefix and the pathname search finds a /bin/cat or
/usr/bin/cat executable. cat copies each file in sequence to the
standard output. If no file is specified, or if the file is -,
cat copies from standard input starting at the current location.
The following options are supported by /usr/bin/cat:
-b
Number the lines, as -n, but omit the line numbers
from blank lines.
-n
Precede each line output with its line number.
-s
cat is silent about non-existent files.
-u
The output is not buffered.
Buffered output is the default.
-v
Non-printing characters, with the exception of tabs,
NEWLINEs and form feeds, are printed visibly. ASCII control characters (octal
000 − 037) are printed as ^n, where
n is the corresponding ASCII character in the range octal 100 −
137 (@, A, B, C, ..., X, Y, Z, [, \, ], ^, and _); the DEL character
(octal 0177) is printed ^?. Other non-printable characters are
printed as M-x, where x is the ASCII character specified
by the low-order seven bits.
When used with the -v option, the following options can be
used:
-e
A $ character is printed at the end of each line,
prior to the NEWLINE.
-t
Tabs are printed as ^Is and form feeds to be
printed as ^Ls.
The -e and -t options are ignored if the -v
option is not specified.
ksh93 cat supports the following options:
-b --number-nonblank
Number lines as with -n but omit line numbers from
blank lines.
-d --dos-input
Open input files in text mode. Removes RETURNs in front
of NEWLINEs on some systems.
-e
Equivalent to -vE.
-n --number
Insert a line number at the beginning of each line.
-s
Equivalent to -S for att universe and
-B otherwise.
-t
Equivalent to -vT.
-u --unbuffer
Do not delay the output by buffering.
-v --show-nonprinting
Cause non-printing characters (with the exception of
TABs, NEWLINEs, and form feeds) to be output as printable character sequences.
ASCII control characters are printed as ^n, where n is
the corresponding ASCII character in the range octal
100-137. The DEL character (octal 0177) is copied as
^?. Other non-printable characters are copied as M-x
where x is the ASCII character specified by the low-order seven
bits. Multi-byte characters in the current locale are treated as printable
characters.
-A --show-all
Equivalent to -vET.
-B --squeeze-blank
Replace multiple adjacent NEWLINE characters with one
NEWLINE.
-D --dos-output
Open output files in text mode. Insert RETURNs in front
of NEWLINEs on some systems.
-E --show-ends
Insert a $ before each NEWLINE.
-S --silent
cat is silent about non-existent files.
-T --show-blank
Copies TABs as ^I and form feeds as
^L.
The following operand is supported:
file
A path name of an input file. If no file is
specified, the standard input is used. If file is −,
cat reads from the standard input at that point in the sequence.
cat does not close and reopen standard input when it is referenced in
this way, but accepts multiple occurrences of − as
file.
See largefile(7) for the description of the behavior of cat when
encountering files greater than or equal to 2 Gbyte ( 2^31 bytes).
Example 1 Concatenating a File
The following command writes the contents of the file
myfile to standard output:
example% cat myfile
Example 2 Concatenating Two files into One
The following command concatenates the files doc1 and
doc2 and writes the result to doc.all.
example% cat doc1 doc2 > doc.all
Example 3 Concatenating Two Arbitrary Pieces of Input with
a Single Invocation
When standard input is a terminal, the following command gets two
arbitrary pieces of input from the terminal with a single invocation of
cat:
example% cat start - middle - end > file
If standard input is a regular file,
example% cat start - middle - end > file
would be equivalent to the following command:
example% cat start - middle /dev/null end > file
because the entire contents of the file would be consumed by
cat the first time − was used as a file operand
and an end-of-file condition would be detected immediately when
− was referenced the second time.
See environ(7) for descriptions of the following environment variables
that affect the execution of cat: LANG, LC_ALL,
LC_CTYPE, LC_MESSAGES, and NLSPATH.
The following exit values are returned:
0
All input files were output successfully.
>0
An error occurred.
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE
TYPE |
ATTRIBUTE VALUE |
CSI |
Enabled |
Interface Stability |
Committed |
Standard |
See standards(7). |
ATTRIBUTE
TYPE |
ATTRIBUTE VALUE |
Interface Stability |
See below. |
The ksh93 built-in binding to /bin and
/usr/bin is Volatile. The built-in interfaces are Uncommitted.
Redirecting the output of cat onto one of the files being read causes the
loss of the data originally in the file being read. For example,
example% cat filename1 filename2 > filename1
causes the original data in filename1 to be lost.