1.\" $MirOS: src/bin/cat/cat.1,v 1.2 2012/05/20 15:31:59 tg Exp $ 2.\" $OpenBSD: cat.1,v 1.25 2004/07/02 10:28:34 jmc Exp $ 3.\" $NetBSD: cat.1,v 1.12 1995/09/27 05:38:55 cgd Exp $ 4.\" 5.\" Copyright (c) 1989, 1990, 1993 6.\" The Regents of the University of California. All rights reserved. 7.\" 8.\" This code is derived from software contributed to Berkeley by 9.\" the Institute of Electrical and Electronics Engineers, Inc. 10.\" 11.\" Redistribution and use in source and binary forms, with or without 12.\" modification, are permitted provided that the following conditions 13.\" are met: 14.\" 1. Redistributions of source code must retain the above copyright 15.\" notice, this list of conditions and the following disclaimer. 16.\" 2. Redistributions in binary form must reproduce the above copyright 17.\" notice, this list of conditions and the following disclaimer in the 18.\" documentation and/or other materials provided with the distribution. 19.\" 3. Neither the name of the University nor the names of its contributors 20.\" may be used to endorse or promote products derived from this software 21.\" without specific prior written permission. 22.\" 23.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33.\" SUCH DAMAGE. 34.\" 35.\" @(#)cat.1 8.3 (Berkeley) 5/2/95 36.\" 37.Dd $Mdocdate: May 20 2012 $ 38.Dt CAT 1 39.Os 40.Sh NAME 41.Nm cat 42.Nd concatenate and print files 43.Sh SYNOPSIS 44.Nm cat 45.Op Fl belnstuv 46.Op Ar 47.Sh DESCRIPTION 48The 49.Nm 50utility reads files sequentially, writing them to the standard output. 51The 52.Ar file 53operands are processed in command-line order. 54If 55.Ar file 56is a single dash 57.Pq Sq \&- 58or absent, 59.Nm 60reads from the standard input. 61.Pp 62The options are as follows: 63.Bl -tag -width Ds 64.It Fl b 65Implies the 66.Fl n 67option but doesn't count blank lines. 68.It Fl e 69Implies the 70.Fl v 71option and also prints a dollar sign 72.Pq Ql \&$ 73at the end of each line. 74.It Fl l 75Set an exclusive advisory lock on the standard output file descriptor. 76This lock is set using 77.Xr fcntl 2 78with the 79.Dv F_SETLKW 80command. 81If the output file is already locked, 82.Nm 83will block until the lock is acquired. 84.It Fl n 85Number the output lines, starting at 1. 86.It Fl s 87Squeeze multiple adjacent empty lines, causing the output to be 88single spaced. 89.It Fl t 90Implies the 91.Fl v 92option and also prints tab characters as 93.Ql ^I . 94.It Fl u 95The output is guaranteed to be unbuffered (see 96.Xr setbuf 3 ) . 97.It Fl v 98Displays non-printing characters so they are visible. 99Control characters print as 100.Ql ^X 101for control-X, with the exception of the tab and EOL characters, 102which are displayed normally. 103The tab character, control-I, can be made visible via the 104.Fl t 105option. 106The 107.Tn DEL 108character (octal 0177) prints as 109.Ql ^? . 110.Pf Non- Ns Tn ASCII 111characters (with the high bit set) are printed as 112.Ql M- 113(for meta) followed by the character for the low 7 bits. 114.El 115.Pp 116The 117.Nm 118utility exits 0 on success or >0 if an error occurred. 119.Sh EXAMPLES 120Print the contents of 121.Ar file1 122to the standard output: 123.Pp 124.Dl $ cat file1 125.Pp 126Sequentially print the contents of 127.Ar file1 128and 129.Ar file2 130to the file 131.Ar file3 , 132truncating 133.Ar file3 134if it already exists. 135See the manual page for your shell (e.g., 136.Xr sh 1 ) 137for more information on redirection. 138.Pp 139.Dl $ cat file1 file2 > file3 140.Pp 141Print the contents of 142.Ar file1 , 143print data it receives from the standard input until it receives an 144.Dv EOF 145.Pq Sq ^D 146character, print the contents of 147.Ar file2 , 148read and output contents of the standard input again, then finally output 149the contents of 150.Ar file3 . 151Note that if the standard input referred to a file, the second dash 152on the command-line would have no effect, since the entire contents of the file 153would have already been read and printed by 154.Nm 155when it encountered the first 156.Ql \&- 157operand. 158.Pp 159.Dl $ cat file1 - file2 - file3 160.Sh SEE ALSO 161.Xr head 1 , 162.Xr less 1 , 163.Xr more 1 , 164.Xr pr 1 , 165.Xr sh 1 , 166.Xr tail 1 , 167.Xr vis 1 , 168.Xr fcntl 2 , 169.Xr setbuf 3 170.Rs 171.%A Rob Pike 172.%T "UNIX Style, or cat -v Considered Harmful" 173.%J "USENIX Summer Conference Proceedings" 174.%D 1983 175.Re 176.Sh STANDARDS 177The 178.Nm 179utility is compliant with the 180.St -p1003.2-92 181specification. 182.Pp 183The flags 184.Op Fl belnstv 185are extensions to the specification. 186.Sh HISTORY 187A 188.Nm 189utility appeared in 190.At v1 . 191The 192.Fl l 193option was added from 194.Nx 195in 196.Mx 11 . 197.Sh BUGS 198Because of the shell language mechanism used to perform output 199redirection, the command 200.Ic cat file1 file2 > file1 201will cause the original data in 202.Ar file1 203to be destroyed! 204