$ sed '/b/,~8 d' a-i.txt
Je sais ce qu'il fait. Mais ils disent "un multiple de 8" pour ~8. Pourquoi est-ce exprimé comme "un multiple de 8" ?
$ sed '/b/,~8 d' a-i.txt
Je sais ce qu'il fait. Mais ils disent "un multiple de 8" pour ~8. Pourquoi est-ce exprimé comme "un multiple de 8" ?
/b/,~8
correspond aux lignes commençant par une ligne contenant b
et jusqu'à ce qu'une ligne dont le numéro est un multiple de 8 soit atteinte
En man sed
:
addr1,~N
S'adapteraaddr1
et les lignes suivantesaddr1
jusqu'à la ligne suivante dont le numéro de ligne d'entrée est un multiple deN
.
Cela permet d'imprimer toute ligne contenant 5
et toutes les lignes suivantes jusqu'à la prochaine ligne dont le numéro est un multiple de 8 :
$ seq 14 | sed -n '/5/,~8 p'
5
6
7
8
Cela permet d'imprimer à partir d'une ligne contenant 14 jusqu'à la ligne suivante dont le numéro est un multiple de 8 :
$ seq 22 | sed -n '/14/,~8 p'
14
15
16
Cette opération supprime toutes les lignes commençant par une ligne correspondant à 5
et se termine par la ligne suivante dont le numéro est un multiple de 8 :
$ seq 10 | sed '/5/,~8 d'
1
2
3
4
9
10
Ceci imprime la quatrième ligne et toutes les huitièmes lignes suivantes :
$ seq 22 | sed -n '4~8 p'
4
12
20
Ceci imprime une ligne correspondant à 4
et les trois lignes suivantes :
$ seq 13 | sed -n '/4/,+3 p'
4
5
6
7
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.