|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Candidat au titre de Membre du Club
![]() |
Bonjour à tous,
Je cherche a introduire dans un script des commandes pour supprimer un bloc de lignes en fonction d'un condition. C'est un fichier Ldif qui contient des groupes de lignes qui commencent par "dn=" et qui se terminent par une ligne blanche. Si l'un de ses groupes contient un certain string dans la première ligne, j'ai besoin de supprimer le groupe de ligne entier (toutes les lignes jusqu'a la prochaine ligne blanche) Pour se faire, j'ai essayer avec sed, mais ca me supprime trop de blocs de lignes. Citation:
Avez vous une autre méthode ? Merci d'avance ! Eric. |
|
|
|
00
|
|
|
#2 |
|
Candidat au titre de Membre du Club
![]() |
Voilà, j'ai fini par trouver.
Avec sed ca donne Code :
sed '/cn=sra/,/^$/ d' < /PATHINPUTFILE > /PATHOUTPUTFILE Sed exécute ce qui se trouve entre ' Les parties entre // définissent le patern de début et le patern de fin. Dans ce cas, c'est la ligne qui contient cn=sra et ca se termine sur une ligne blanche. Enfin, le d signifie une suppression. Mon problème était donc du au fait que le délimiteur de ligne blanche est ^$ à la place de \n Bien à vous Eric. |
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Inscription : septembre 2007 Messages : 685 ![]() |
Merci pour l'explication! On peut ajouter que les bornes (ligne contenant cn=sra et ligne vide) sont incluses dans la suppression.
Un détail: le '<' est inutile. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com