Subsitution // sed
Résolu
Utilisateur anonyme
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
dans un fichier texte, comportant une ligne de texte puis deux lignes vides comme suit:
bla bla bla
bla bla bla
bla bla bla
je souhaiterais pouvoir supprimer une ligne vide sur 2 sur tout le texte,
j'ai essayé avec
:%s/^$/d
sed '1~2 s/^$/d ' fichier
rien n'y fait
si vous avez une idée,
en vous remerciant par avance,
PS: je suis sous AIX 5.3
++
Poulpoul
dans un fichier texte, comportant une ligne de texte puis deux lignes vides comme suit:
bla bla bla
bla bla bla
bla bla bla
je souhaiterais pouvoir supprimer une ligne vide sur 2 sur tout le texte,
j'ai essayé avec
:%s/^$/d
sed '1~2 s/^$/d ' fichier
rien n'y fait
si vous avez une idée,
en vous remerciant par avance,
PS: je suis sous AIX 5.3
++
Poulpoul
A voir également:
- Subsitution // sed
- Remplacez le mot sed par le mot mais dans tout le texte. combien de caractères contient le document suite à cette modification (en incluant les espaces) ? - Guide
- Sed et ses caprices (ou les miens) ✓ - Forum Linux / Unix
- Sed crlf - Astuces et Solutions
- Sed - Remplacement texte par retour à la ligne ? ✓ - Forum Linux / Unix
- Sed supprimer ligne vide - Forum Linux / Unix
5 réponses
Salut,
S'il n'y a que deux ligne vides consécutives :
S'il n'y a que deux ligne vides consécutives :
sed '/^$/N;/^\n$/s/^\n$//'Sinon si plus de deux lignes vides consécutives :
sed '/^$/{:z;N;/^\n$/s/^\n$//;tz}';-))
merci beaucoup Jipicy
c'est impec
y aurait il possibilité de détailler les commandes ?
la première je vois à peu près, la seconde un peu plus complexe ...
merci par avance,
c'est impec
y aurait il possibilité de détailler les commandes ?
la première je vois à peu près, la seconde un peu plus complexe ...
merci par avance,
La 1ère :
Pour la 2nd :
'/^$/ Si la ligne est vide N On ajoute la suivante /^\n$/ Si la ligne ne contient qu'un caractère "fin de ligne" s/^\n$//' On le supprime
Pour la 2nd :
'/^$/{ Début commandes groupées. Si la ligne est vide :z Étiquette N On ajoute la suivante /^\n$/ Si la ligne ne contient qu'un caractère "fin de ligne" s/^\n$// On le supprime tz Si une substitution a eu lieu, on se branche à l'étiquette }' Fin commandes groupées
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question