ntpd: renew cur_time after script run, it can take a while
[oweals/busybox.git] / editors / sed_summary.htm
1 <html>
2
3 <head><title>Command Summary for sed (sed & awk, Second Edition)</title>
4 </head>
5
6 <body>
7
8 <h2>Command Summary for sed</h2>
9
10 <dl>
11
12 <dt><b>: </b> <b> :</b><em>label</em></dt>
13 <dd>Label a line in the script for the transfer of control by
14 <b>b</b> or <b>t</b>.
15 <em>label</em> may contain up to seven characters.
16 (The POSIX standard says that an implementation can allow longer
17 labels if it wishes to. GNU sed allows labels to be of any length.)
18 </p></dd>
19
20
21 <dt><b>=</b> [<em>address</em>]<b>=</b></dt>
22 <dd>Write to standard output the line number of addressed line.</p></dd>
23
24
25 <dt><b>a</b> [<em>address</em>]<b>a\</b></dt>
26 <dd><em>text</em></p>
27
28 <p>Append <em>text</em>
29 following each line matched by <em>address</em>.  If
30 <em>text</em> goes over more than one line, newlines
31 must be "hidden" by preceding them with a backslash.  The
32 <em>text</em> will be terminated by the first
33 newline that is not hidden in this way.  The
34 <em>text</em> is not available in the pattern space
35 and subsequent commands cannot be applied to it.  The results of this
36 command are sent to standard output when the list of editing commands
37 is finished, regardless of what happens to the current line in the
38 pattern space.</p></dd>
39
40
41 <dt><b>b</b> [<em>address1</em>[,<em>address2</em>]]<b>b</b>[<em>label</em>]</dt>
42 <dd>Transfer control unconditionally (branch) to
43 <b>:</b><em>label</em> elsewhere in
44 script.  That is, the command following the
45 <em>label</em> is the next command applied to the
46 current line.  If no <em>label</em> is specified,
47 control falls through to the end of the script, so no more commands
48 are applied to the current line.</p></dd>
49
50
51 <dt><b>c</b> [<em>address1</em>[,<em>address2</em>]]<b>c\</b></dt>
52 <dd><em>text</em></p>
53
54 <p>Replace (change) the lines selected by the address with
55 <em>text</em>.  When a range of lines is specified,
56 all lines as a group are replaced by a single copy of
57 <em>text</em>.  The newline following each line of
58 <em>text</em> must be escaped by a backslash, except
59 the last line.  The contents of the pattern space are, in effect,
60 deleted and no subsequent editing commands can be applied to it (or to
61 <em>text</em>).</p></dd>
62
63
64 <dt><b>d</b> [<em>address1</em>[,<em>address2</em>]]<b>d</b></dt>
65 <dd>Delete line(s) from pattern space.  Thus, the line is not passed to standard
66 output. A new line of input is read and editing resumes with first
67 command in script.</p></dd>
68
69
70 <dt><b>D</b> [<em>address1</em>[,<em>address2</em>]]<b>D</b></dt>
71 <dd>Delete first part (up to embedded newline) of multiline pattern space created
72 by <b>N</b> command and resume editing with first command in
73 script.  If this command empties the pattern space, then a new line
74 of input is read, as if the <b>d</b> command had been executed.</p></dd>
75
76
77 <dt><b>g</b> [<em>address1</em>[,<em>address2</em>]]<b>g</b></dt>
78 <dd>Copy (get) contents of hold space (see <b>h</b> or
79 <b>H</b> command) into the pattern space, wiping out
80 previous contents.</p></dd>
81
82
83 <dt><b>G</b> [<em>address1</em>[,<em>address2</em>]]<b>G</b></dt>
84 <dd>Append newline followed by contents of hold space (see
85 <b>h</b> or <b>H</b> command) to contents of
86 the pattern space.  If hold space is empty, a newline is still
87 appended to the pattern space.</p></dd>
88
89
90 <dt><b>h</b> [<em>address1</em>[,<em>address2</em>]]<b>h</b></dt>
91 <dd>Copy pattern space into hold space, a special temporary buffer.
92 Previous contents of hold space are wiped out.</p></dd>
93
94
95 <dt><b>H</b> [<em>address1</em>[,<em>address2</em>]]<b>H</b></dt>
96 <dd>Append newline and contents of pattern space to contents of the hold
97 space.  Even if hold space is empty, this command still appends the
98 newline first.</p></dd>
99
100
101 <dt><b>i</b> [<em>address1</em>]<b>i\</b></dt>
102 <dd><em>text</em></p>
103
104 <p>Insert <em>text</em> before each line matched by
105 <em>address</em>. (See <b>a</b> for
106 details on <em>text</em>.)</p></dd>
107
108
109 <dt><b>l</b> [<em>address1</em>[,<em>address2</em>]]<b>l</b></dt>
110 <dd>List the contents of the pattern space, showing nonprinting characters
111 as ASCII codes.  Long lines are wrapped.</p></dd>
112
113
114 <dt><b>n</b> [<em>address1</em>[,<em>address2</em>]]<b>n</b></dt>
115 <dd>Read next line of input into pattern space.  Current line is sent to
116 standard output.  New line becomes current line and increments line
117 counter.  Control passes to command following <b>n</b>
118 instead of resuming at the top of the script.</p></dd>
119
120
121 <dt><b>N</b> [<em>address1</em>[,<em>address2</em>]]<b>N</b></dt>
122 <dd>Append next input line to contents of pattern space; the new line is
123 separated from the previous contents of the pattern space by a newline.
124 (This command is designed to allow pattern matches across two
125 lines.  Using \n to match the embedded newline, you can match
126 patterns across multiple lines.)</p></dd>
127
128
129 <dt><b>p</b> [<em>address1</em>[,<em>address2</em>]]<b>p</b></dt>
130 <dd>Print the addressed line(s).  Note that this can result in duplicate
131 output unless default output is suppressed by using "#n" or
132 the <span class="option">-n</span>
133
134 command-line option.  Typically used before commands that change flow
135 control (<b>d</b>, <b>n</b>,
136 <b>b</b>) and might prevent the current line from being
137 output.</p></dd>
138
139
140 <dt><b>P</b> [<em>address1</em>[,<em>address2</em>]]<b>P</b></dt>
141 <dd>Print first part (up to embedded newline) of multiline pattern space
142 created by <b>N</b> command.  Same as <b>p</b>
143 if <b>N</b> has not been applied to a line.</p></dd>
144
145
146 <dt><b>q</b> [<em>address</em>]<b>q</b></dt>
147 <dd>Quit when <em>address</em> is encountered.  The
148 addressed line is first written to output (if default output is not
149 suppressed), along with any text appended to it by previous
150 <b>a</b> or <b>r</b> commands.</p></dd>
151
152
153 <dt><b>r</b> [<em>address</em>]<b>r</b> <em>file</em></dt>
154 <dd>Read contents of <em>file</em> and append after the
155 contents of the pattern space.  Exactly one space must be put between
156 <b>r</b> and the filename.</p></dd>
157
158
159 <dt><b>s</b> [<em>address1</em>[,<em>address2</em>]]<b>s</b>/<em>pattern</em>/<em>replacement</em>/[<em>flags</em>]</dt>
160 <dd>Substitute <em>replacement</em> for
161 <em>pattern</em> on each addressed line.  If pattern
162 addresses are used, the pattern <b>//</b> represents the
163 last pattern address specified.  The following flags can be specified:</p>
164
165         <dl>
166
167         <dt><b>n</b></dt>
168         <dd>Replace <em>n</em>th instance of
169         /<em>pattern</em>/ on each addressed line.
170         <em>n</em> is any number in the range 1 to 512, and
171         the default is 1.</p></dd>
172
173         <dt><b>g</b></dt>
174         <dd>Replace all instances of /<em>pattern</em>/ on each
175         addressed line, not just the first instance.</p></dd>
176
177         <dt><b>I</b></dt>
178         <dd>Matching is case-insensitive.<p></p></dd>
179
180         <dt><b>p</b></dt>
181         <dd>Print the line if a successful substitution is done.  If several
182         successful substitutions are done, multiple copies of the line will be
183         printed.</p></dd>
184
185         <dt><b>w</b> <em>file</em></dt>
186         <dd>Write the line to <em>file</em> if a replacement
187         was done.  A maximum of 10 different <em>files</em> can be opened.</p></dd>
188
189         </dl>
190
191 </dd>
192
193
194 <dt><b>t</b> [<em>address1</em>[,<em>address2</em>]]<b>t </b>[<em>label</em>]</dt>
195 <dd>Test if successful substitutions have been made on addressed lines,
196 and if so, branch to line marked by :<em>label</em>.
197 (See <b>b</b> and <b>:</b>.)  If label is not
198 specified, control falls through to bottom of script.</p></dd>
199
200
201 <dt><b>w</b> [<em>address1</em>[,<em>address2</em>]]<b>w</b> <em>file</em></dt>
202 <dd>Append contents of pattern space to <em>file</em>.
203 This action occurs when the command is encountered rather than when
204 the pattern space is output.  Exactly one space must separate the
205 <b>w</b> and the filename.  A maximum of 10 different
206 files can be opened in a script.  This command will create the file if
207 it does not exist; if the file exists, its contents will be
208 overwritten each time the script is executed.  Multiple write commands
209 that direct output to the same file append to the end of the file.</p></dd>
210
211
212 <dt><b>x</b> [<em>address1</em>[,<em>address2</em>]]<b>x</b></dt>
213 <dd>Exchange contents of the pattern space with the contents of the hold
214 space.</p></dd>
215
216
217 <dt><b>y</b> [<em>address1</em>[,<em>address2</em>]]<b>y</b>/<em>abc</em>/<em>xyz</em>/</dt>
218 <dd>Transform each character by position in string
219 <em>abc</em> to its equivalent in string
220 <em>xyz</em>.</p></dd>
221
222
223 </dl>