/b/,~8
corresponde a linhas que começam com uma linha contendo b
e continuam até que uma linha seja alcançada, cujo número de linha é um múltiplo de 8
De man sed
:
addr1,~N
Corresponde aaddr1
e as linhas que seguemaddr1
até a próxima linha cujo número de linha de entrada é um múltiplo deN
.
Exemplos
Imprime qualquer linha que contenha 5
e todas as linhas seguintes até e incluindo a próxima linha cujo número de linha seja um múltiplo de 8:
$ seq 14 | sed -n '/5/,~8 p'
5
6
7
8
Imprime a partir de uma linha contendo 14 até a próxima linha cujo número de linha é um múltiplo de 8:
$ seq 22 | sed -n '/14/,~8 p'
14
15
16
Isso exclui todas as linhas que começam com uma linha corresponde a 5
e termina com a próxima linha cujo número de linha é um múltiplo de 8:
$ seq 10 | sed '/5/,~8 d'
1
2
3
4
9
10
Semelhante, mas diferente
Isso imprime a quarta linha e todas as linhas seguintes:
$ seq 22 | sed -n '4~8 p'
4
12
20
Isso imprime uma linha correspondente a 4
e as próximas três linhas a seguir:
$ seq 13 | sed -n '/4/,+3 p'
4
5
6
7