diff options
author | rsc <devnull@localhost> | 2005-01-14 03:45:44 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2005-01-14 03:45:44 +0000 |
commit | 78e51a8c6678b6e3dff3d619aa786669f531f4bc (patch) | |
tree | 015e00fde4fc837fd31b705e18d17dc913829388 /man/man1/sed.html | |
parent | 2634795b5f0053bc0ff08e5d7bbc0eda8efea061 (diff) | |
download | plan9port-78e51a8c6678b6e3dff3d619aa786669f531f4bc.tar.gz plan9port-78e51a8c6678b6e3dff3d619aa786669f531f4bc.tar.bz2 plan9port-78e51a8c6678b6e3dff3d619aa786669f531f4bc.zip |
checkpoint
Diffstat (limited to 'man/man1/sed.html')
-rw-r--r-- | man/man1/sed.html | 300 |
1 files changed, 300 insertions, 0 deletions
diff --git a/man/man1/sed.html b/man/man1/sed.html new file mode 100644 index 00000000..c40874ad --- /dev/null +++ b/man/man1/sed.html @@ -0,0 +1,300 @@ +<head> +<title>sed(1) - Plan 9 from User Space</title> +<meta content="text/html; charset=utf-8" http-equiv=Content-Type> +</head> +<body bgcolor=#ffffff> +<table border=0 cellpadding=0 cellspacing=0 width=100%> +<tr height=10><td> +<tr><td width=20><td> +<tr><td width=20><td><b>SED(1)</b><td align=right><b>SED(1)</b> +<tr><td width=20><td colspan=2> + <br> +<p><font size=+1><b>NAME </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + sed – stream editor<br> + +</table> +<p><font size=+1><b>SYNOPSIS </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + <tt><font size=+1>sed</font></tt> [ <tt><font size=+1>−n</font></tt> ] [ <tt><font size=+1>−g</font></tt> ] [ <tt><font size=+1>−e</font></tt> <i>script</i> ] [ <tt><font size=+1>−f</font></tt> <i>sfile</i> ] [ <i>file ...</i> ]<br> + +</table> +<p><font size=+1><b>DESCRIPTION </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + <i>Sed</i> copies the named <i>files</i> (standard input default) to the standard + output, edited according to a script of commands. The <tt><font size=+1>−f</font></tt> option + causes the script to be taken from file <i>sfile</i>; these options accumulate. + If there is just one <tt><font size=+1>−e</font></tt> option and no <tt><font size=+1>−f</font></tt>’s, the flag <tt><font size=+1>−e</font></tt> may be + omitted. The <tt><font size=+1>−n</font></tt> option suppresses the default + output; <tt><font size=+1>−g</font></tt> causes all substitutions to be global, as if suffixed + <tt><font size=+1>g</font></tt>. + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + A script consists of editing commands, one per line, of the following + form:<br> + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + [<i>address</i> [<tt><font size=+1>,</font></tt> <i>address</i>] ] <i>function</i> [<i>argument</i> ...] + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + + </table> + In normal operation <i>sed</i> cyclically copies a line of input into + a <i>pattern space</i> (unless there is something left after a <tt><font size=+1>D</font></tt> command), + applies in sequence all commands whose <i>addresses</i> select that pattern + space, and at the end of the script copies the pattern space to + the standard output (except under <tt><font size=+1>−n</font></tt>) and deletes the + pattern space. + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + An <i>address</i> is either a decimal number that counts input lines + cumulatively across files, a <tt><font size=+1>$</font></tt> that addresses the last line of + input, or a context address, <tt><font size=+1>/</font></tt><i>regular-expression</i><tt><font size=+1>/</font></tt>, in the style + of <a href="../man7/regexp.html"><i>regexp</i>(7)</a>, with the added convention that <tt><font size=+1>\n</font></tt> matches a newline + embedded in the pattern space. + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + A command line with no addresses selects every pattern space. + + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + A command line with one address selects each pattern space that + matches the address. + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + A command line with two addresses selects the inclusive range + from the first pattern space that matches the first address through + the next pattern space that matches the second. (If the second + address is a number less than or equal to the line number first + selected, only one line is selected.) Thereafter the process is + repeated, looking again for the first address. + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + Editing commands can be applied to non-selected pattern spaces + by use of the negation function <tt><font size=+1>!</font></tt> (below). + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + An argument denoted <i>text</i> consists of one or more lines, all but + the last of which end with <tt><font size=+1>\</font></tt> to hide the newline. Backslashes + in text are treated like backslashes in the replacement string + of an <tt><font size=+1>s</font></tt> command, and may be used to protect initial blanks and + tabs against the stripping that is done on every script line. + + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + An argument denoted <i>rfile</i> or <i>wfile</i> must terminate the command + line and must be preceded by exactly one blank. Each <i>wfile</i> is + created before processing begins. There can be at most 120 distinct + <i>wfile</i> arguments.<br> + <tt><font size=+1>a\<br> + </font></tt><i>text</i> Append. Place <i>text</i> on the output before reading the next input + line.<br> + <tt><font size=+1>b</font></tt> <i>label</i> Branch to the <tt><font size=+1>:</font></tt> command bearing the <i>label</i>. If <i>label</i> is + empty, branch to the end of the script.<br> + <tt><font size=+1>c\<br> + </font></tt><i>text</i> Change. Delete the pattern space. With 0 or 1 address or at + the end of a 2-address range, place <i>text</i> on the output. Start + the next cycle.<br> + <tt><font size=+1>d</font></tt> Delete the pattern space. Start the next cycle.<br> + <tt><font size=+1>D</font></tt> Delete the initial segment of the pattern space through the first + newline. Start the next cycle.<br> + <tt><font size=+1>g</font></tt> Replace the contents of the pattern space by the contents of + the hold space.<br> + <tt><font size=+1>G</font></tt> Append the contents of the hold space to the pattern space.<br> + <tt><font size=+1>h</font></tt> Replace the contents of the hold space by the contents of the + pattern space.<br> + <tt><font size=+1>H</font></tt> Append the contents of the pattern space to the hold space.<br> + <tt><font size=+1>i\<br> + </font></tt><i>text</i> Insert. Place <i>text</i> on the standard output.<br> + <tt><font size=+1>n</font></tt> Copy the pattern space to the standard output. Replace the pattern + space with the next line of input.<br> + <tt><font size=+1>N</font></tt> Append the next line of input to the pattern space with an embedded + newline. (The current line number changes.)<br> + <tt><font size=+1>p</font></tt> Print. Copy the pattern space to the standard output.<br> + <tt><font size=+1>P</font></tt> Copy the initial segment of the pattern space through the first + newline to the standard output.<br> + <tt><font size=+1>q</font></tt> Quit. Branch to the end of the script. Do not start a new cycle.<br> + <tt><font size=+1>r</font></tt> <i>rfile</i> Read the contents of <i>rfile</i>. Place them on the output before + reading the next input line.<br> + <tt><font size=+1>s/</font></tt><i>regular-expression</i><tt><font size=+1>/</font></tt><i>replacement</i><tt><font size=+1>/</font></tt><i>flags<br> + </i> + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + Substitute the <i>replacement</i> string for instances of the <i>regular-expression</i> + in the pattern space. Any character may be used instead of <tt><font size=+1>/</font></tt>. + For a fuller description see <a href="../man7/regexp.html"><i>regexp</i>(7)</a>. <i>Flags</i> is zero or more + of<br> + <tt><font size=+1>g</font></tt> Global. Substitute for all non-overlapping instances of the <i>regular + expression</i> rather than just the first one.<br> + <tt><font size=+1>p</font></tt> Print the pattern space if a replacement was made.<br> + <tt><font size=+1>w</font></tt> <i>wfile<br> + </i>Write. Append the pattern space to <i>wfile</i> if a replacement was + made.<br> + + </table> + + </table> + <tt><font size=+1>t</font></tt> <i>label</i> Test. Branch to the <tt><font size=+1>:</font></tt> command bearing the <i>label</i> if any + substitutions have been made since the most recent reading of + an input line or execution of a <tt><font size=+1>t</font></tt>. If <i>label</i> is empty, branch to + the end of the script.<br> + <tt><font size=+1>w</font></tt><i> wfile<br> + </i> + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + Write. Append the pattern space to <i>wfile</i>.<br> + + </table> + + </table> + <tt><font size=+1>x</font></tt> Exchange the contents of the pattern and hold spaces.<br> + <tt><font size=+1>y/</font></tt><i>string1</i><tt><font size=+1>/</font></tt><i>string2</i><tt><font size=+1>/<br> + </font></tt> + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + Transform. Replace all occurrences of characters in <i>string1</i> with + the corresponding character in <i>string2</i>. The lengths of <i>string1</i> + and <i>string2</i> must be equal.<br> + + </table> + + </table> + <tt><font size=+1>!</font></tt><i>function</i> Don’t. Apply the <i>function</i> (or group, if <i>function</i> is <tt><font size=+1>{</font></tt>) + only to lines <i>not</i> selected by the address(es).<br> + <tt><font size=+1>:</font></tt> <i>label</i> This command does nothing; it bears a <i>label</i> for <tt><font size=+1>b</font></tt> and <tt><font size=+1>t</font></tt> + commands to branch to.<br> + <tt><font size=+1>=</font></tt> Place the current line number on the standard output as a line.<br> + <tt><font size=+1>{</font></tt> Execute the following commands through a matching <tt><font size=+1>}</font></tt> only when + the pattern space is selected.<br> + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + An empty command is ignored.<br> + + </table> + + </table> + +</table> +<p><font size=+1><b>EXAMPLES </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + <tt><font size=+1>sed 10q file<br> + </font></tt> + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + Print the first 10 lines of the file.<br> + + </table> + <tt><font size=+1>sed '/^$/d'<br> + </font></tt> + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + Delete empty lines from standard input.<br> + + </table> + <tt><font size=+1>sed 's/UNIX/& system/g'<br> + </font></tt> + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + Replace every instance of <tt><font size=+1>UNIX</font></tt> by <tt><font size=+1>UNIX system</font></tt>. + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + + </table> + <tt><font size=+1>sed 's/ *$// </font></tt> drop trailing blanks<br> + <tt><font size=+1>/^$/d </font></tt> drop empty lines<br> + <tt><font size=+1>s/ */\ </font></tt> replace blanks by newlines<br> + <tt><font size=+1>/g<br> + /^$/d' chapter*<br> + </font></tt> + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + Print the files <tt><font size=+1>chapter1</font></tt>, <tt><font size=+1>chapter2</font></tt>, etc. one word to a line. + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + + </table> + <tt><font size=+1>nroff −ms manuscript | sed '<br> + ${<br> + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + /^$/p + </table> + </font></tt> + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + if last line of file is empty, print it<br> + + </table> + <tt><font size=+1>}<br> + //N </font></tt> if current line is empty, append next line<br> + <tt><font size=+1>/^\n$/D' </font></tt> if two lines are empty, delete the first<br> + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + Delete all but one of each group of empty lines from a formatted + manuscript.<br> + + </table> + +</table> +<p><font size=+1><b>SOURCE </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + <tt><font size=+1>/usr/local/plan9/src/cmd/sed.c<br> + </font></tt> +</table> +<p><font size=+1><b>SEE ALSO </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + <a href="../man1/ed.html"><i>ed</i>(1)</a>, <a href="../man1/grep.html"><i>grep</i>(1)</a>, <a href="../man1/awk.html"><i>awk</i>(1)</a>, <a href="../man1/lex.html"><i>lex</i>(1)</a>, <a href="../man1/sam.html"><i>sam</i>(1)</a>, <a href="../man7/regexp.html"><i>regexp</i>(7)</a><br> + L. E. McMahon, ‘SED -- A Non-interactive Text Editor’, Unix Research + System Programmer’s Manual, Volume 2.<br> + +</table> +<p><font size=+1><b>BUGS </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + If input is from a pipe, buffering may consume characters beyond + a line on which a <tt><font size=+1>q</font></tt> command is executed.<br> + +</table> + +<td width=20> +<tr height=20><td> +</table> +<!-- TRAILER --> +<table border=0 cellpadding=0 cellspacing=0 width=100%> +<tr height=15><td width=10><td><td width=10> +<tr><td><td> +<center> +<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a> +</center> +</table> +<!-- TRAILER --> +</body></html> |