xref: /illumos-gate/usr/src/man/man1/cat.1 (revision bbf21555)

Sun Microsystems, Inc. gratefully acknowledges The Open Group for
permission to reproduce portions of its copyrighted documentation.
Original documentation from The Open Group can be obtained online at
http://www.opengroup.org/bookstore/.

The Institute of Electrical and Electronics Engineers and The Open
Group, have given us permission to reprint portions of their
documentation.

In the following statement, the phrase ``this text'' refers to portions
of the system documentation.

Portions of this text are reprinted and reproduced in electronic form
in the SunOS Reference Manual, from IEEE Std 1003.1, 2004 Edition,
Standard for Information Technology -- Portable Operating System
Interface (POSIX), The Open Group Base Specifications Issue 6,
Copyright (C) 2001-2004 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. In the event of any discrepancy
between these versions and the original IEEE and The Open Group
Standard, the original IEEE and The Open Group Standard is the referee
document. The original Standard can be obtained online at
http://www.opengroup.org/unix/online.html.

This notice shall appear on any product containing this material.

The contents of this file are subject to the terms of the
Common Development and Distribution License (the "License").
You may not use this file except in compliance with the License.

You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
or http://www.opensolaris.org/os/licensing.
See the License for the specific language governing permissions
and limitations under the License.

When distributing Covered Code, include this CDDL HEADER in each
file and include the License file at usr/src/OPENSOLARIS.LICENSE.
If applicable, add the following below this CDDL HEADER, with the
fields enclosed by brackets "[]" replaced with your own identifying
information: Portions Copyright [yyyy] [name of copyright owner]


Copyright 1989 AT&T
Portions Copyright (c) 1992, X/Open Company Limited All Rights Reserved
Portions Copyright (c) 1982-2007 AT&T Knowledge Ventures
Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved

CAT 1 "Sep 19, 2020"
NAME
cat - concatenate and display files
SYNOPSIS
"/usr/bin/cat"
/usr/bin/cat [-nbsuvet] [file...]
"ksh93"
cat [-bdenstuvABDEST] [file...]
DESCRIPTION
"/usr/bin/cat"
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.

"ksh93"
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.
OPTIONS
"/usr/bin/cat"
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, [, \e, ], ^, 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"
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.

OPERANDS
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.

USAGE
See largefile(7) for the description of the behavior of cat when encountering files greater than or equal to 2 Gbyte ( 2^31 bytes).
EXAMPLES
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.

ENVIRONMENT VARIABLES
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.
EXIT STATUS
The following exit values are returned: 0

All input files were output successfully.

>0

An error occurred.

ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
"/usr/bin/cat"
ATTRIBUTE TYPE ATTRIBUTE VALUE
CSI Enabled
Interface Stability Committed
Standard See standards(7).
"ksh93"
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.

SEE ALSO
touch (1), attributes (7), environ (7), largefile (7), standards (7)
NOTES
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.