Eliminer les lignes sous condition
Résolu
jhoncoke
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
-
jhoncoke Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
jhoncoke Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai fichier txt de 4 colonnes de nombre réels.
Je cherche à faire un script bash pour éliminer toutes les lignes dont la colonne 4 est nulle à condition que la colonne des lignes i-1 et i+1 soient nulles aussi.
La colonne 4 présente parfois une suite de 0 et je veux garder le premier et le dernier et éliminer le reste.
Quelqu'un saurait m'aider?
Merci :)
J'ai fichier txt de 4 colonnes de nombre réels.
Je cherche à faire un script bash pour éliminer toutes les lignes dont la colonne 4 est nulle à condition que la colonne des lignes i-1 et i+1 soient nulles aussi.
La colonne 4 présente parfois une suite de 0 et je veux garder le premier et le dernier et éliminer le reste.
Quelqu'un saurait m'aider?
Merci :)
A voir également:
- Eliminer les lignes sous condition
- Excel cellule couleur si condition texte - Guide
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Comment éliminer les publicités - Guide
- Afficher toutes les lignes masquées excel ✓ - Forum Excel
- Excel condition ou - Guide
3 réponses
Sur le bout de fichier que tu m'as passé, cette syntaxe avec "sed" marche :
$ cat plop 50.0976 4.52132 156.2 15.6 50.0979 4.52071 149.5 0.0 50.0979 4.52071 149.5 0.0 50.0979 4.52071 149.6 0.0 50.0979 4.52071 149.6 0.0 50.0979 4.52078 161.3 4.9 50.0958 4.5249 146.6 0.0 50.0948 4.52616 148.4 30.8 $ sed '/0.0$/{N;:z;/0.0$/{N;/0.0$/{s/.*\n//2M;bz;}}};' plop 50.0976 4.52132 156.2 15.6 50.0979 4.52071 149.5 0.0 50.0979 4.52071 149.6 0.0 50.0979 4.52078 161.3 4.9 50.0958 4.5249 146.6 0.0 50.0948 4.52616 148.4 30.8 $
jhoncoke
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
ça fonctionne !! Merci :)
Salut,
Merci de poster un exemple concret de ton fichier, sans quoi on risque de partir dans tous les sens...
Une piste : awk
Merci de poster un exemple concret de ton fichier, sans quoi on risque de partir dans tous les sens...
Une piste : awk
Voici un bout de mon fichier:
50.0976 4.52132 156.2 15.6
50.0979 4.52071 149.5 0.0
50.0979 4.52071 149.5 0.0
50.0979 4.52071 149.6 0.0
50.0979 4.52071 149.6 0.0
50.0979 4.52078 161.3 4.9
50.0958 4.5249 146.6 0.0
50.0948 4.52616 148.4 30.8
Dans ce bout, il faut retirer les lignes 3 et 4 uniquement. Pcq leurs 4ème colonne est nulle et ainsi que celle des lignes avant et après elles. Par contre les lignes 2,5, 7 il faut pas les eliminer pcq la colonne 4 des lignes avant et/ou après elles ne sont pas nulles.
Merci
50.0976 4.52132 156.2 15.6
50.0979 4.52071 149.5 0.0
50.0979 4.52071 149.5 0.0
50.0979 4.52071 149.6 0.0
50.0979 4.52071 149.6 0.0
50.0979 4.52078 161.3 4.9
50.0958 4.5249 146.6 0.0
50.0948 4.52616 148.4 30.8
Dans ce bout, il faut retirer les lignes 3 et 4 uniquement. Pcq leurs 4ème colonne est nulle et ainsi que celle des lignes avant et après elles. Par contre les lignes 2,5, 7 il faut pas les eliminer pcq la colonne 4 des lignes avant et/ou après elles ne sont pas nulles.
Merci