.\" Copyright (c) 1980, 1991, 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.
.\"
.\"     @(#)ul.1	8.1 (Berkeley) 6/6/93
.\"
.TH UL "1" "September 2011" "util-linux" "User Commands"
.SH NAME
ul \- do underlining
.SH SYNOPSIS
.BR ul " [options]"
.RI [ file ...]
.SH DESCRIPTION
.B ul
reads the named files (or standard input if none are given) and translates
occurrences of underscores to the sequence which indicates underlining for
the terminal in use, as specified by the environment variable
.BR TERM .
The
.I terminfo
database is read to determine the appropriate sequences for underlining.  If
the terminal is incapable of underlining but is capable of a standout mode,
then that is used instead.  If the terminal can overstrike, or handles
underlining automatically,
.B ul
degenerates to
.BR cat (1).
If the terminal cannot underline, underlining is ignored.
.SH OPTIONS
.TP
\fB\-i\fR, \fB\-\-indicated\fR
Underlining is indicated by a separate line containing appropriate dashes
`\-'; this is useful when you want to look at the underlining which is
present in an
.B nroff
output stream on a crt-terminal.
.TP
\fB\-t\fR, \fB\-T\fR, \fB\-\-terminal\fR \fIterminal\fR
Override the environment variable
.B TERM
with the specified
.I terminal
type.
.TP
\fB\-V\fR, \fB\-\-version\fR
Display version information and exit.
.TP
\fB\-h\fR, \fB\-\-help\fR
Display help text and exit.
.SH ENVIRONMENT
The following environment variable is used:
.TP
.B TERM
The
.B TERM
variable is used to relate a tty device with its device capability
description (see
.BR terminfo (5)).
.B TERM
is set at login time, either by the default terminal type specified in
.I /etc/ttys
or as set during the login process by the user in their
.B login
file (see
.BR setenv (1)).
.SH SEE ALSO
.BR colcrt (1),
.BR login (1),
.BR man (1),
.BR nroff (1),
.BR setenv (1),
.BR terminfo (5)
.SH BUGS
.B nroff
usually outputs a series of backspaces and underlines intermixed with the
text to indicate underlining.  No attempt is made to optimize the backward
motion.
.SH HISTORY
The
.B ul
command appeared in 3.0BSD.
.SH AVAILABILITY
The ul command is part of the util-linux package and is available from
.UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
Linux Kernel Archive
.UE .
