Suppression de lignes en awk
Résolu
Clément
-
Clément -
Clément -
Bonjour,
j'ai un fichier qui ressemble un peu à ça:
1.5 0.30
1.5 0.34
1.8 0.40
1.8 0.41
2.0 0.37
2.0 0.38
et je voudrais supprimer les lignes où le champ $1 est identique à celui de la précédente pour que mon fichier devienne:
1.5 0.30
1.8 0.40
2.0 0.37
J'ai essayé ce script:
mais malheureusement il ne fonctionne pas,
si vous avez des suggestions pour modifier le script où m'en proposer un nouveau je suis preneur!
Merci d'avance,
Clément.
j'ai un fichier qui ressemble un peu à ça:
1.5 0.30
1.5 0.34
1.8 0.40
1.8 0.41
2.0 0.37
2.0 0.38
et je voudrais supprimer les lignes où le champ $1 est identique à celui de la précédente pour que mon fichier devienne:
1.5 0.30
1.8 0.40
2.0 0.37
J'ai essayé ce script:
awk '{ v = 0 ; for (i=1; i<=NR; i++) {k = $1; if ($1==v) {print $0;} v = k;} }' fichierdépart > fichierdestination
mais malheureusement il ne fonctionne pas,
si vous avez des suggestions pour modifier le script où m'en proposer un nouveau je suis preneur!
Merci d'avance,
Clément.
A voir également:
- Sed supprimer ligne
- Supprimer rond bleu whatsapp - Guide
- Partager photos en ligne - Guide
- Supprimer page word - Guide
- Supprimer pub youtube - Accueil - Streaming
- Mètre en ligne - Guide
3 réponses
Salut,
Avec sed ?
;-))
Zen my nuggets ;-)
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
Avec sed ?
$ cat plop 1.5 0.30 1.5 0.34 1.8 0.40 1.8 0.41 2.0 0.37 2.0 0.38 $ sed -r 'N;/([^ ]*) .*\n\1.*/{P;d}' plop 1.5 0.30 1.8 0.40 2.0 0.37 $
;-))
Zen my nuggets ;-)
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
Bonjour,
la solution de qqchquicommenceparQ marche parfaitement.
Par contre pour le sed, il fonctionne sur l'exemple que j'ai donné mais en réalité mon fichier est plus compliqué et il y a parfois des répétitions plus longues (>2), et je pense que c'est pour ça qu'il ne fonctionne pas. C'est ma faute j'aurais pas du simplifier le fichier..
En tous cas merci à vous deux pour les réponses!
la solution de qqchquicommenceparQ marche parfaitement.
Par contre pour le sed, il fonctionne sur l'exemple que j'ai donné mais en réalité mon fichier est plus compliqué et il y a parfois des répétitions plus longues (>2), et je pense que c'est pour ça qu'il ne fonctionne pas. C'est ma faute j'aurais pas du simplifier le fichier..
En tous cas merci à vous deux pour les réponses!