![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| comment supprimer une ligne vierge à partir du fichier | aoussenko | De programmation et de script Shell | 4 | 06-20-2008 01:05 PM |
| supprimer espace en début de ligne | karthikn7974 | De programmation et de script Shell | 4 | 05-07-2008 05:40 AM |
| comment supprimer le texte de la ligne de départ jusqu'à la ligne filtre1 avant pattern2? | repudi8or | De programmation et de script Shell | 5 | 04-15-2008 10:25 PM |
| comment supprimer la ligne avec le texte correspondant à la ligne et immédiatement après | orahi001 | UNIX pour les nuls Questions et réponses | 6 | 01-15-2008 12:34 AM |
| regex pour supprimer plusieurs lignes vides dans un fichier? | fedora | De programmation et de script Shell | 6 | 10-11-2007 05:36 PM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
sed: supprimer regex ligne et la ligne suivante si vide
Salut, Je veux écrire un sed script qui à partir de Code:
batiato: batiato/giubbe: pip_b.2.txt pip_b.3.txt pip_b.3mmm.txt bennato: bennato/peterpan: 123.txt consoli: pip_a.12.txt daniele: daniele/anna: abc.txt procuces Code:
batiato/giubbe: pip_b.2.txt pip_b.3.txt pip_b.3mmm.txt bennato/peterpan: 123.txt consoli: pip_a.12.txt daniele/anna: abc.txt Je pense à quelque chose comme: "si une ligne contenant": "est suivie par une ligne vide de supprimer les deux lignes (la ligne par": "et la ligne vide)" c'est-à-dire quelque chose en général si une ligne est suivie regex1 (immédiatement après), par une ligne contenant regex2 supprimer les deux lignes. si elle est sur une ligne, je ne saurais le faire: sed '/ regex1 .* regex2 / d' -> comment la diffusion de cette commande sur 2 lignes? Et d'envisager, dans mon cas, chapeau regex2 est une ligne vide (c'est-à-dire ^ $). merci |
|
||||
|
Désolé, j'ai posté ma première réponse sur la base d'une lecture trop rapide de votre question. Code:
sed '/:$/!b;N;/:\n$/d' input.txt Voici une brève explication: /:$/! b - si ce n'est une ligne se terminant par un colon, il suffit de passer à la fin du script et d'impression. N - il s'agit d'une fin de ligne avec un colon; chercher la ligne suivante et collez-les ensemble. /: \ $ n / d - si l'ensemble des deux lignes correspondent à ce schéma, les supprimer d'autre, d'imprimer Le \ n fonctionne différemment selon les versions de sedMais, si elle ne fonctionne pas, essayez avec une nouvelle ligne littérale, avec ou sans un anti-slash. Dernière édition par époque au 09.18.2008 06:56 AM.. Motif: Note sur les \ n dans les différentes versions de sed |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|