Supprimer la ligne précédante

Résolu/Fermé
Baladia Messages postés 6 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 4 avril 2011 - 7 mai 2010 à 11:23
Baladia Messages postés 6 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 4 avril 2011 - 8 mai 2010 à 15:02
Bonjour à tous,

Je souhaite suuprimer la ligne précédante dans un fichier si la ligne courante commence par zéro, je suis sur unix AIX exemple


Message 1
0 rows

Message 1
1 rows

Message 1
0 rows

donc l arésultat que je veux est :

Message 1
1 rows

Merci pour vos réponses.
A voir également:

5 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
7 mai 2010 à 11:34
Salut,

jp@MDK:~/tmpfs ssh$ cat plop
Message 1
0 rows

Message 1
1 rows

Message 1
0 rows

jp@MDK:~/tmpfs ssh$ sed '/^$/!N;/\n0/d' plop

Message 1
1 rows

jp@MDK:~/tmpfs ssh$

;-))
1
Baladia Messages postés 6 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 4 avril 2011
8 mai 2010 à 10:34
Bonjour jipicy; merci bcp pour la réponse ça marche très bien
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
8 mai 2010 à 10:37
Salut Baladia,

De rien ;-))
0
Baladia Messages postés 6 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 4 avril 2011
8 mai 2010 à 11:23
j"ai une autre question; est ce qu'il y a un moyen pour supprimer le videengendré par la suppression des deux lignes car si on a un fichier qui contient 3000 lignes et si on supprime par exemple 2000 on va avoir un fichier avec 2000 lignes vide
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
8 mai 2010 à 11:28
sed '/^$/d;N;/\n0/d' plop

;-))
0
Baladia Messages postés 6 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 4 avril 2011
8 mai 2010 à 11:44
vraiment chappeau à vous; ça marche très bien

Est ce que j'ai le droit à une petite explication car je suis nouveau sous unix?

Merci bcp une autre fois
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
8 mai 2010 à 12:25
/^$/
On cherche un motif (tout ce qui se trouve entre les slashs) représentant une ligne vide (^ est le caractère représentant le début d'un ligne et $ représente la fin de la ligne), donc si il n'y a rien entre ces 2 caractères, c'est forcément que la ligne est vide.

d
On supprime la ligne vide avec la commande "d" (delete)

N
Si la ligne n'est pas vide, on ajoute la ligne suivante dans l'espace de travail.

/\n0/
Si dans les 2 lignes présentent dans l'espace de travail on trouve le motif constitué du caractère nouvelle ligne (\n) suivi par un zéro (0)

d
On supprime ces 2 lignes.


Pour de plus amples renseignements sur la commande "sed", voir la FAQ :
Sed
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Baladia Messages postés 6 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 4 avril 2011
8 mai 2010 à 15:02
merci bcp
0