3 votes

sed /RegEx/,~N format adresse

$ 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" ?

5voto

user221266 Points 11

/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'adaptera addr1 et les lignes suivantes addr1 jusqu'à la ligne suivante dont le numéro de ligne d'entrée est un multiple de N .

Exemples

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

Similaires mais différents

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

SistemesEz.com

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.

Powered by:

X