The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 09-18-2008
one71 one71 is offline
Registered User
  
 

Join Date: Feb 2008
Messages: 10
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
  #2 (permalink)  
Old 09-18-2008
one71 one71 is offline
Registered User
  
 

Join Date: Feb 2008
Messages: 10
oh oui! cela fonctionne maintenant!
Merci beaucoup et merci pour l'explication trop

Dernière édition par one71; au 09.18.2008 06:59 AM..
  #3 (permalink)  
Old 09-18-2008
ère era is offline Forum Advisor  
Inutile de Herder Cats (en congé sabbatique)
  
 

Join Date: Mar 2008
Location: / il / est / que / bin / sh
Messages: 3652
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
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 03:13 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0