Annotation of cci/usr/src/man/man1/sed.1, revision 1.1.1.1

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