4.2 行番号による行の選択

sed スクリプトのアドレスには、次のいずれかの形式を使えます。

number

行番号を指定すると、入力のその行だけに一致します。(-i または -s オプションを指定しない限り、sed はすべての入力ファイルを通して行を数え続けます。)

$

このアドレスは、最後の入力ファイルの最終行に一致します。-i または -s オプションを指定すると、各ファイルの最終行に一致します。

first~step

この GNU 拡張は、first 行目から始めて step 行ごとに一致します。具体的には、現在の行番号が first + (n * step) と等しくなる非負の n が存在する行を選びます。したがって、奇数行には 1~2、偶数行には 0~2 を使います。2行目から3行ごとに選ぶには「2~3」、10行目から5行ごとなら「10~5」を使います。「50~0」は、単に 50 を遠回しに表したものです。

次のコマンドは、間隔を指定するアドレスの使い方を示します。

$ seq 10 | sed -n '0~4p'
4
8

$ seq 10 | sed -n '1~3p'
1
4
7
10