2005-01-10 08:39:26 +00:00
|
|
|
.\"-
|
1994-05-26 06:18:55 +00:00
|
|
|
.\" Copyright (c) 1989, 1990, 1993
|
|
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" This code is derived from software contributed to Berkeley by
|
|
|
|
.\" the Institute of Electrical and Electronics Engineers, Inc.
|
|
|
|
.\"
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
2017-02-28 23:42:47 +00:00
|
|
|
.\" 3. Neither the name of the University nor the names of its contributors
|
1994-05-26 06:18:55 +00:00
|
|
|
.\" may be used to endorse or promote products derived from this software
|
|
|
|
.\" without specific prior written permission.
|
|
|
|
.\"
|
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
.\" SUCH DAMAGE.
|
|
|
|
.\"
|
1996-12-14 05:51:58 +00:00
|
|
|
.\" @(#)cat.1 8.3 (Berkeley) 5/2/95
|
1999-08-27 23:15:48 +00:00
|
|
|
.\" $FreeBSD$
|
1994-05-26 06:18:55 +00:00
|
|
|
.\"
|
2013-01-29 20:01:47 +00:00
|
|
|
.Dd January 29, 2013
|
1994-05-26 06:18:55 +00:00
|
|
|
.Dt CAT 1
|
2000-04-14 21:01:35 +00:00
|
|
|
.Os
|
1994-05-26 06:18:55 +00:00
|
|
|
.Sh NAME
|
|
|
|
.Nm cat
|
|
|
|
.Nd concatenate and print files
|
|
|
|
.Sh SYNOPSIS
|
2000-11-20 11:39:41 +00:00
|
|
|
.Nm
|
2013-01-29 18:19:40 +00:00
|
|
|
.Op Fl belnstuv
|
1994-05-26 06:18:55 +00:00
|
|
|
.Op Ar
|
|
|
|
.Sh DESCRIPTION
|
|
|
|
The
|
1998-05-06 06:49:16 +00:00
|
|
|
.Nm
|
1994-05-26 06:18:55 +00:00
|
|
|
utility reads files sequentially, writing them to the standard output.
|
|
|
|
The
|
|
|
|
.Ar file
|
2000-04-14 21:01:35 +00:00
|
|
|
operands are processed in command-line order.
|
|
|
|
If
|
|
|
|
.Ar file
|
|
|
|
is a single dash
|
2006-12-23 09:25:23 +00:00
|
|
|
.Pq Sq Fl
|
2000-04-14 21:01:35 +00:00
|
|
|
or absent,
|
|
|
|
.Nm
|
2001-09-25 18:10:18 +00:00
|
|
|
reads from the standard input.
|
|
|
|
If
|
2001-09-15 00:39:14 +00:00
|
|
|
.Ar file
|
2001-09-25 18:10:18 +00:00
|
|
|
is a
|
|
|
|
.Ux
|
|
|
|
domain socket,
|
2001-09-15 00:39:14 +00:00
|
|
|
.Nm
|
2001-09-25 18:10:18 +00:00
|
|
|
connects to it and then reads it until
|
|
|
|
.Dv EOF .
|
|
|
|
This complements the
|
|
|
|
.Ux
|
|
|
|
domain binding capability available in
|
|
|
|
.Xr inetd 8 .
|
1994-05-26 06:18:55 +00:00
|
|
|
.Pp
|
|
|
|
The options are as follows:
|
1998-05-13 07:16:37 +00:00
|
|
|
.Bl -tag -width indent
|
1994-05-26 06:18:55 +00:00
|
|
|
.It Fl b
|
1998-05-13 07:16:37 +00:00
|
|
|
Number the non-blank output lines, starting at 1.
|
1994-05-26 06:18:55 +00:00
|
|
|
.It Fl e
|
1998-05-13 07:16:37 +00:00
|
|
|
Display non-printing characters (see the
|
1994-05-26 06:18:55 +00:00
|
|
|
.Fl v
|
1998-05-13 07:16:37 +00:00
|
|
|
option), and display a dollar sign
|
1994-05-26 06:18:55 +00:00
|
|
|
.Pq Ql \&$
|
1998-05-13 07:16:37 +00:00
|
|
|
at the end of each line.
|
2013-01-29 18:19:40 +00:00
|
|
|
.It Fl l
|
|
|
|
Set an exclusive advisory lock on the standard output file descriptor.
|
|
|
|
This lock is set using
|
|
|
|
.Xr fcntl 2
|
|
|
|
with the
|
|
|
|
.Dv F_SETLKW
|
|
|
|
command.
|
|
|
|
If the output file is already locked,
|
|
|
|
.Nm
|
|
|
|
will block until the lock is acquired.
|
1994-05-26 06:18:55 +00:00
|
|
|
.It Fl n
|
1996-12-14 05:51:58 +00:00
|
|
|
Number the output lines, starting at 1.
|
1994-05-26 06:18:55 +00:00
|
|
|
.It Fl s
|
|
|
|
Squeeze multiple adjacent empty lines, causing the output to be
|
|
|
|
single spaced.
|
|
|
|
.It Fl t
|
1998-05-13 07:16:37 +00:00
|
|
|
Display non-printing characters (see the
|
1994-05-26 06:18:55 +00:00
|
|
|
.Fl v
|
1998-05-13 07:16:37 +00:00
|
|
|
option), and display tab characters as
|
|
|
|
.Ql ^I .
|
1994-05-26 06:18:55 +00:00
|
|
|
.It Fl u
|
2004-03-21 11:04:59 +00:00
|
|
|
Disable output buffering.
|
1994-05-26 06:18:55 +00:00
|
|
|
.It Fl v
|
1998-05-06 06:49:16 +00:00
|
|
|
Display non-printing characters so they are visible.
|
1994-05-26 06:18:55 +00:00
|
|
|
Control characters print as
|
|
|
|
.Ql ^X
|
|
|
|
for control-X; the delete
|
|
|
|
character (octal 0177) prints as
|
2000-12-15 17:37:31 +00:00
|
|
|
.Ql ^? .
|
1998-05-06 06:49:16 +00:00
|
|
|
.Pf Non- Tn ASCII
|
|
|
|
characters (with the high bit set) are printed as
|
1994-05-26 06:18:55 +00:00
|
|
|
.Ql M-
|
|
|
|
(for meta) followed by the character for the low 7 bits.
|
|
|
|
.El
|
2005-01-16 16:41:59 +00:00
|
|
|
.Sh EXIT STATUS
|
2001-08-15 09:09:47 +00:00
|
|
|
.Ex -std
|
2000-04-14 21:01:35 +00:00
|
|
|
.Sh EXAMPLES
|
|
|
|
The command:
|
2005-01-15 12:28:01 +00:00
|
|
|
.Pp
|
|
|
|
.Dl "cat file1"
|
2000-04-14 21:01:35 +00:00
|
|
|
.Pp
|
|
|
|
will print the contents of
|
2006-12-23 09:22:06 +00:00
|
|
|
.Pa file1
|
2000-04-14 21:01:35 +00:00
|
|
|
to the standard output.
|
|
|
|
.Pp
|
|
|
|
The command:
|
2005-01-15 12:28:01 +00:00
|
|
|
.Pp
|
|
|
|
.Dl "cat file1 file2 > file3"
|
2000-04-14 21:01:35 +00:00
|
|
|
.Pp
|
|
|
|
will sequentially print the contents of
|
2006-12-23 09:22:06 +00:00
|
|
|
.Pa file1
|
2000-04-14 21:01:35 +00:00
|
|
|
and
|
2006-12-23 09:22:06 +00:00
|
|
|
.Pa file2
|
2000-04-14 21:01:35 +00:00
|
|
|
to the file
|
2006-12-23 09:22:06 +00:00
|
|
|
.Pa file3 ,
|
2000-04-14 21:01:35 +00:00
|
|
|
truncating
|
2006-12-23 09:22:06 +00:00
|
|
|
.Pa file3
|
2000-04-14 21:01:35 +00:00
|
|
|
if it already exists.
|
2012-09-07 09:00:25 +00:00
|
|
|
See the manual page for your shell (e.g.,
|
2000-04-14 21:01:35 +00:00
|
|
|
.Xr sh 1 )
|
|
|
|
for more information on redirection.
|
|
|
|
.Pp
|
|
|
|
The command:
|
2005-01-15 12:28:01 +00:00
|
|
|
.Pp
|
|
|
|
.Dl "cat file1 - file2 - file3"
|
2000-04-14 21:01:35 +00:00
|
|
|
.Pp
|
|
|
|
will print the contents of
|
2006-12-23 09:22:06 +00:00
|
|
|
.Pa file1 ,
|
2000-04-14 21:01:35 +00:00
|
|
|
print data it receives from the standard input until it receives an
|
|
|
|
.Dv EOF
|
|
|
|
.Pq Sq ^D
|
|
|
|
character, print the contents of
|
2006-12-23 09:22:06 +00:00
|
|
|
.Pa file2 ,
|
2000-04-14 21:01:35 +00:00
|
|
|
read and output contents of the standard input again, then finally output
|
|
|
|
the contents of
|
2006-12-23 09:22:06 +00:00
|
|
|
.Pa file3 .
|
2000-04-14 21:01:35 +00:00
|
|
|
Note that if the standard input referred to a file, the second dash
|
|
|
|
on the command-line would have no effect, since the entire contents of the file
|
|
|
|
would have already been read and printed by
|
|
|
|
.Nm
|
|
|
|
when it encountered the first
|
2006-12-23 09:22:06 +00:00
|
|
|
.Sq Fl
|
2000-04-14 21:01:35 +00:00
|
|
|
operand.
|
1994-05-26 06:18:55 +00:00
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr head 1 ,
|
|
|
|
.Xr more 1 ,
|
|
|
|
.Xr pr 1 ,
|
2000-04-14 21:01:35 +00:00
|
|
|
.Xr sh 1 ,
|
1996-12-14 05:51:58 +00:00
|
|
|
.Xr tail 1 ,
|
2000-04-14 21:01:35 +00:00
|
|
|
.Xr vis 1 ,
|
2001-06-18 20:00:39 +00:00
|
|
|
.Xr zcat 1 ,
|
2013-01-29 18:19:40 +00:00
|
|
|
.Xr fcntl 2 ,
|
2000-04-14 21:01:35 +00:00
|
|
|
.Xr setbuf 3
|
1994-05-26 06:18:55 +00:00
|
|
|
.Rs
|
|
|
|
.%A Rob Pike
|
|
|
|
.%T "UNIX Style, or cat -v Considered Harmful"
|
|
|
|
.%J "USENIX Summer Conference Proceedings"
|
|
|
|
.%D 1983
|
|
|
|
.Re
|
2000-04-14 21:01:35 +00:00
|
|
|
.Sh STANDARDS
|
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
utility is compliant with the
|
|
|
|
.St -p1003.2-92
|
|
|
|
specification.
|
|
|
|
.Pp
|
|
|
|
The flags
|
2013-01-29 18:19:40 +00:00
|
|
|
.Op Fl belnstv
|
2000-04-14 21:01:35 +00:00
|
|
|
are extensions to the specification.
|
1994-05-26 06:18:55 +00:00
|
|
|
.Sh HISTORY
|
|
|
|
A
|
|
|
|
.Nm
|
2000-04-14 21:01:35 +00:00
|
|
|
utility appeared in
|
|
|
|
.At v1 .
|
1998-05-06 06:49:16 +00:00
|
|
|
.An Dennis Ritchie
|
2000-04-13 19:31:46 +00:00
|
|
|
designed and wrote the first man page.
|
1996-08-22 16:54:12 +00:00
|
|
|
It appears to have been
|
|
|
|
.Xr cat 1 .
|
2000-04-14 21:01:35 +00:00
|
|
|
.Sh BUGS
|
|
|
|
Because of the shell language mechanism used to perform output
|
|
|
|
redirection, the command
|
2000-06-27 18:22:13 +00:00
|
|
|
.Dq Li cat file1 file2 > file1
|
2006-12-23 09:22:06 +00:00
|
|
|
will cause the original data in
|
|
|
|
.Pa file1
|
|
|
|
to be destroyed!
|
2004-03-21 11:02:40 +00:00
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
utility does not recognize multibyte characters when the
|
|
|
|
.Fl t
|
|
|
|
or
|
|
|
|
.Fl v
|
|
|
|
option is in effect.
|