Rechercher : dans
Par :

[Shell-script] suppresion lignes identiques

Dernière réponse le 27 avr 2007 à 22:44:41 Phil, le 27 avr 2007 à 11:58:18 
 Signaler ce message aux modérateurs

Bonjour à tous.

J'ai un fichier du type :

   Date         Time       lat      Lon     Pha  Dist   Sta        
2004/01/01   01:06:56.0  71.1426 -14.6447    P   2.50   SCO	   
2004/01/01   01:08:48.1  71.1426 -14.6447    P  10.25   KBS	  
2004/01/01   01:08:54.8  71.1426 -14.6447    P  10.64  SPB4	 
2004/01/01   01:44:17.0  38.3826  21.6384    P   1.96   VLI	  
2004/01/01   01:44:21.3  38.3826  21.6384    S   1.10   LKR	   
2004/01/01   02:32:33.1  11.7330  43.4560    P   2.28  UDYN	
2004/01/01   02:32:41.6  11.7330  43.4560    P   2.95  DHBB	
  

Comme vous pouvez le voir il y a des lignes dont les colonnes 'lat' et 'lon' sont identique. Je cherche à trier mon fichier pour faire en sorte de ne garder qu'une ligne par couple de 'lat' et 'lon'.
Pour cet exemple cela donnerais :
   Date         Time       lat      Lon     Pha  Dist   Sta        
2004/01/01   01:06:56.0  71.1426 -14.6447    P   2.50   SCO	    
2004/01/01   01:44:17.0  38.3826  21.6384    P   1.96   VLI	     
2004/01/01   02:32:33.1  11.7330  43.4560    P   2.28  UDYN	

Je précise que le but du script est de supprimer les lignes superflues, l'important étant de garder un couple de 'lat' et 'lon'.
Je crois que la commande 'sort -u' permet de faire ce genre d'opération mais je ne sais pas comment lui indiquer quelle colonnes regarder.

Any ideas ???

Merçi d'avance :)
Configuration: Windows XP
Firefox 2.0.0.3

Meilleures réponses pour « [Shell script] suppresion lignes identiques » dans :
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
Guide d'utilisation du Shell pour débutant VoirSHELL BASH - GUIDE D'UTILISATION - Niveau Débutant Introduction Appel aux membres CCM II. C'est quoi le shell ? III. Comment accéder à la ligne de commande IV. Les consoles virtuelles Exemple : Accéder à la console 3 depuis l'interface...

1

tlep, le 27 avr 2007 à 12:35:08

Ben perso je ferais 2 boucles imbriquées :

while read ligne

A l'intérieur de cette boucle je passerais dans un tableau la concaténation des 2 colonnes 'lat' et 'lon';
A chaque lecture de ligne, vérifier si le résultat existe dans ton tableau (en bouclant dessus).
Si non, j'ajoute la concaténation au tableau et je mémorise la ligne (ou l'envoie dans un fichier de sortie).

done < mon_fichier

Mais bon y'a surement plus propre ;-)

Répondre à tlep

2

jipicy, le 27 avr 2007 à 16:24:11
  • +2

Salut,

sort -r +2 fichier | uniq -f 3 -w 7
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

3

 tlep, le 27 avr 2007 à 22:44:41

Trop fort :-))

Répondre à tlep
Collection CommentÇaMarche.net