Annotation of 43BSDTahoe/man/man1/sed.1, revision 1.1.1.1

1.1       root        1: .\"    @(#)sed.1       6.2 (Berkeley) 9/30/87
                      2: .\"
                      3: .TH SED 1 "September 30, 1987"
                      4: .AT 3
                      5: .SH NAME
                      6: sed \- stream editor
                      7: .SH SYNOPSIS
                      8: .B sed
                      9: [
                     10: .B \-n
                     11: ]
                     12: [
                     13: .B \-e
                     14: script ] [
                     15: .B \-f
                     16: sfile ] [ file ] ...
                     17: .SH DESCRIPTION
                     18: .I Sed
                     19: copies the named
                     20: .I files
                     21: (standard input default) to the standard output,
                     22: edited according to a script of commands.
                     23: The
                     24: .B \-f
                     25: option causes the script to be taken from file
                     26: .IR sfile ;
                     27: these options accumulate.
                     28: If there is just one
                     29: .B \-e
                     30: option and no
                     31: .BR \-f 's,
                     32: the flag
                     33: .B \-e
                     34: may be omitted.
                     35: The
                     36: .B \-n
                     37: option suppresses the default output.
                     38: .PP
                     39: A script consists of editing commands, one per line,
                     40: of the following form:
                     41: .IP
                     42: [address [, address] ] function [arguments]
                     43: .PP
                     44: In normal operation
                     45: .I sed
                     46: cyclically copies a line of input into a
                     47: .I pattern space
                     48: (unless there is something left after
                     49: a `D' command),
                     50: applies in sequence
                     51: all commands whose
                     52: .I addresses
                     53: select that pattern space,
                     54: and at the end of the script copies the pattern space
                     55: to the standard output (except under
                     56: .BR \-n )
                     57: and deletes the pattern space.
                     58: .PP
                     59: An
                     60: .I address
                     61: is either a decimal number that counts
                     62: input lines cumulatively across files, a `$' that
                     63: addresses the last line of input, or a context address,
                     64: `/regular expression/', in the style of
                     65: .IR ed (1)
                     66: modified thus:
                     67: .IP
                     68: The escape sequence `\en' matches a
                     69: newline embedded in the pattern space.
                     70: .PP
                     71: A command line with no addresses selects every pattern space.
                     72: .PP
                     73: A command line with
                     74: one address selects each pattern space that matches the address.
                     75: .PP
                     76: A command line with
                     77: two addresses selects the inclusive range from the first
                     78: pattern space that matches the first address through
                     79: the next pattern space that matches 
                     80: the second.
                     81: (If the second address is a number less than or equal
                     82: to the line number first selected, only one
                     83: line is selected.)
                     84: Thereafter the process is repeated, looking again for the
                     85: first address.
                     86: .PP
                     87: Editing commands can be applied only to non-selected pattern
                     88: spaces by use of the negation function `!' (below).
                     89: .PP
                     90: In the following list of functions the 
                     91: maximum number of permissible addresses
                     92: for each function is indicated in parentheses.
                     93: .PP
                     94: An argument denoted
                     95: .I text
                     96: consists of one or more lines,
                     97: all but the last of which end with `\e' to hide the
                     98: newline.
                     99: Backslashes in text are treated like backslashes
                    100: in the replacement string of an `s' command,
                    101: and may be used to protect initial blanks and tabs
                    102: against the stripping that is done on
                    103: every script line.
                    104: .PP
                    105: An argument denoted
                    106: .I rfile
                    107: or
                    108: .I wfile
                    109: must terminate the command
                    110: line and must be preceded by exactly one blank.
                    111: Each
                    112: .I wfile
                    113: is created before processing begins.
                    114: There can be at most 10 distinct
                    115: .I wfile
                    116: arguments.
                    117: .TP
                    118: (1)\|a\e
                    119: .br
                    120: .ns
                    121: .TP
                    122: .I text
                    123: .br
                    124: Append.
                    125: Place
                    126: .I text
                    127: on the output before
                    128: reading the next input line.
                    129: .TP
                    130: .RI (2)\|b " label"
                    131: Branch to the `:' command bearing the
                    132: .IR label .
                    133: If
                    134: .I label
                    135: is empty, branch to the end of the script.
                    136: .TP
                    137: (2)\|c\e
                    138: .br
                    139: .ns
                    140: .TP
                    141: .I text
                    142: .br
                    143: Change.
                    144: Delete the pattern space.
                    145: With 0 or 1 address or at the end of a 2-address range, place
                    146: .I text
                    147: on the output.
                    148: Start the next cycle.
                    149: .TP
                    150: (2)\|d
                    151: Delete the pattern space.
                    152: Start the next cycle.
                    153: .TP
                    154: (2)\|D
                    155: Delete the initial segment of the 
                    156: pattern space through the first newline.
                    157: Start the next cycle.
                    158: .TP
                    159: (2)\|g
                    160: Replace the contents of the pattern space
                    161: by the contents of the hold space.
                    162: .TP
                    163: (2)\|G
                    164: Append the contents of the hold space to the pattern space.
                    165: .TP
                    166: (2)\|h
                    167: Replace the contents of the hold space by the contents of the pattern space.
                    168: .TP
                    169: (2)\|H
                    170: Append the contents of the pattern space to the hold space.
                    171: .TP
                    172: (1)\|i\e
                    173: .br
                    174: .ns
                    175: .TP
                    176: .I text
                    177: .br
                    178: Insert.
                    179: Place
                    180: .I text
                    181: on the standard output.
                    182: .TP
                    183: (2)\|n
                    184: Copy the pattern space to the standard output.
                    185: Replace the pattern space with the next line of input.
                    186: .TP
                    187: (2)\|N
                    188: Append the next line of input to the pattern space
                    189: with an embedded newline.
                    190: (The current line number changes.)
                    191: .TP
                    192: (2)\|p
                    193: Print.
                    194: Copy the pattern space to the standard output.
                    195: .TP
                    196: (2)\|P
                    197: Copy the initial segment of the pattern space through
                    198: the first newline to the standard output.
                    199: .TP
                    200: (1)\|q
                    201: Quit.
                    202: Branch to the end of the script.
                    203: Do not start a new cycle.
                    204: .TP
                    205: .RI (2)\|r " rfile"
                    206: Read the contents of
                    207: .IR rfile .
                    208: Place them on the output before reading
                    209: the next input line.
                    210: .TP
                    211: .RI (2)\|s /regular\ expression/replacement/flags
                    212: Substitute the
                    213: .I replacement
                    214: string for instances of the
                    215: .I regular expression
                    216: in the pattern space.
                    217: Any character may be used instead of `/'.
                    218: For a fuller description see
                    219: .IR ed (1).
                    220: .I Flags
                    221: is zero or more of
                    222: .RS
                    223: .TP
                    224: g
                    225: Global.
                    226: Substitute for all nonoverlapping instances of the
                    227: .I regular expression
                    228: rather than just the
                    229: first one.
                    230: .TP
                    231: p
                    232: Print the pattern space if a replacement was made.
                    233: .TP
                    234: .RI w " wfile"
                    235: Write.
                    236: Append the pattern space to
                    237: .I wfile
                    238: if a replacement
                    239: was made.
                    240: .RE
                    241: .TP
                    242: .RI (2)\|t " label"
                    243: Test.
                    244: Branch to the `:' command bearing the
                    245: .I label
                    246: if any
                    247: substitutions have been made since the most recent
                    248: reading of an input line or execution of a `t'.
                    249: If 
                    250: .I label
                    251: is empty, branch to the end of the script.
                    252: .TP
                    253: .RI (2)\|w " wfile"
                    254: Write.
                    255: Append the pattern space to
                    256: .IR wfile .
                    257: .TP
                    258: .RI (2)\|x
                    259: Exchange the contents of the pattern and hold spaces.
                    260: .TP
                    261: .RI (2)\|y /string1/string2/
                    262: Transform.
                    263: Replace all occurrences of characters in
                    264: .I string1
                    265: with the corresponding character in
                    266: .I string2.
                    267: The lengths of
                    268: .I
                    269: string1
                    270: and
                    271: .I string2
                    272: must be equal.
                    273: .TP
                    274: .RI (2)! " function"
                    275: Don't.
                    276: Apply the
                    277: .I function
                    278: (or group, if
                    279: .I function
                    280: is `{') only to lines
                    281: .I not
                    282: selected by the address(es).
                    283: .TP
                    284: .RI (0)\|: " label"
                    285: This command does nothing; it bears a
                    286: .I label
                    287: for `b' and `t' commands to branch to.
                    288: .TP
                    289: (1)\|=
                    290: Place the current line number on the standard output as a line.
                    291: .TP
                    292: (2)\|{
                    293: Execute the following commands through a matching `}'
                    294: only when the pattern space is selected.
                    295: .TP
                    296: (0)\|
                    297: An empty command is ignored.
                    298: .TP
                    299: (0)\|#
                    300: If a \fI#\fP appears as the first character on a line of a script,
                    301: then that entire line is treated as a comment, with one exception.
                    302: If the first line of the script starts with the characters ``\fI#\fPn'',
                    303: then the default output will be suppressed.  The rest of the line after
                    304: ``\fI#\fPn'' will also be ignored.  A script file must contain at least one
                    305: non-comment line.
                    306: .SH SEE ALSO
                    307: ed(1), grep(1), awk(1), lex(1)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.