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