Next: Regexp Addresses, Previous: Addresses overview, Up: sed addresses [Contents][Index]
Addresses in a sed
script can be in any of the following forms:
number
Specifying a line number will match only that line in the input.
(Note that sed
counts lines continuously across all input files
unless -i or -s options are specified.)
$
This address matches the last line of the last file of input, or the last line of each file when the -i or -s options are specified.
first~step
This GNU extension matches every stepth line
starting with line first.
In particular, lines will be selected when there exists
a non-negative n such that the current line-number equals
first + (n * step).
Thus, one would use 1~2
to select the odd-numbered lines and
0~2
for even-numbered lines;
to pick every third line starting with the second, ‘2~3’ would be used;
to pick every fifth line starting with the tenth, use ‘10~5’;
and ‘50~0’ is just an obscure way of saying 50
.
The following commands demonstrate the step address usage:
$ seq 10 | sed -n '0~4p' 4 8 $ seq 10 | sed -n '1~3p' 1 4 7 10