.\" Copyright (c) 1990, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" 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.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    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.
.\"
.\"     @(#)look.1	8.1 (Berkeley) 6/14/93
.\"
.TH LOOK 1 "June 2011" "util-linux" "User Commands"
.SH NAME
look \- display lines beginning with a given string
.SH SYNOPSIS
.B look
[options]
.IR "string " [ file ]
.SH DESCRIPTION
The
.B look
utility displays any lines in
.I file
which contain
.IR string .
As
.B look
performs a binary search, the lines in
.I file
must be sorted (where
.BR sort (1)
was given the same options
.BR "\-d " and/or " \-f " that
.B look
is invoked with).
.PP
If
.I file
is not specified, the file
.I /usr/share/dict/words
is used, only alphanumeric characters are compared and the case of
alphabetic characters is ignored.
.SH OPTIONS
.TP
.BR \-a , " \-\-alternative"
Use the alternative dictionary file.
.TP
.BR \-d , " \-\-alphanum"
Use normal dictionary character set and order, i.e. only blanks and
alphanumeric characters are compared.  This is on by default if no file is
specified.

Note that blanks have been added to dictionary character set for
compatibility with \fBsort \-d\fR command since version 2.28.
.TP
.BR \-f , " \-\-ignore\-case"
Ignore the case of alphabetic characters.  This is on by default if no file is
specified.
.TP
.BR \-t , " \-\-terminate " \fIcharacter\fR
Specify a string termination character, i.e. only the characters
in \fIstring\fR up to and including the first occurrence of \fIcharacter\fR
are compared.
.TP
.BR \-V , " \-\-version"
Display version information and exit.
.TP
.BR \-h , " \-\-help"
Display help text and exit.
.PP
The
.B look
utility exits 0 if one or more lines were found and displayed, 1 if
no lines were found, and >1 if an error occurred.
.SH EXAMPLE
.RS
.nf
sort -d /etc/passwd -o /tmp/look.dict
look -t: root:foobar /tmp/look.dict
.nf
.RE
.SH ENVIRONMENT
.TP
.B WORDLIST
Path to a dictionary file.  The environment variable has greater priority
than the dictionary path defined in FILES segment.
.SH FILES
.IP "\fB/usr/share/dict/words\fR" 4
the dictionary
.IP "\fB/usr/share/dict/web2\fR" 4
the alternative dictionary
.SH "SEE ALSO"
.BR grep (1),
.BR sort (1)
.SH HISTORY
The
.B look
utility appeared in Version 7 AT&T Unix.
.SH AVAILABILITY
The look command is part of the util-linux package and is available from
https://www.kernel.org/pub/linux/utils/util-linux/.
