Sed/Numeric-Addresses
Next: Regexp Addresses, Previous: Addresses overview, Up: sed addresses [Contents][Index]
4.2 Selecting lines by numbers
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
step
th line starting with linefirst
. In particular, lines will be selected when there exists a non-negativen
such that the current line-number equalsfirst
+ (n
*step
). Thus, one would use1~2
to select the odd-numbered lines and0~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 saying50
.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