Annotation of 43BSDReno/usr.bin/sed/sed.1, revision 1.1

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