Rechercher : dans
Par :

[Korn Shell] Commande UNIQ

Dernière réponse le 26 mar 2008 à 17:57:10 cilv1, le 26 mar 2008 à 16:53:09 
 Signaler ce message aux modérateurs

Bonjour à tous,

Je travaille sur un système AIX 4.3 et je suis en train d'écrire un script en Korn Shell (KSH) afin de nettoyer un fichier susceptible de contenir les lignes suivantes :

ES.PREVCT.M.ENV.0.D20080326.H220000.csv_20080326_110800
ES.PREVCT.J.ENV.0.D20080326.H220000.csv_20080326_085700
ES.PREVCT.J.ENV.0.D20080325.H220000.csv_20080325_144200
ES.PREVCT.J.ENV.0.D20080325.H220000.csv_20080325_144100
ES.PREVCT.J.ENV.0.D20080325.H220000.csv_20080325_143700
ES.PREVCT.J.ENV.0.D20080325.H220000.csv_20080325_142100

En gros, je souhaite supprimer les lignes dont le texte délimité en gras est répété.

Pour l'exemple ci-dessus, le résultat attendu est le suivant :

ES.PREVCT.M.ENV.0.D20080326.H220000.csv_20080326_110800
ES.PREVCT.J.ENV.0.D20080326.H220000.csv_20080326_085700

Je sais déjà comment trier les lignes (commande SORT), mais je reconnais que je galère un peu avec la commande UNIQ.

Pour info, voici comment est implémentée la commande UNIQ sur ma machine :
Usage: uniq [-c | -d | -u] [-f Fields] [-s Chars] [-Fields] [+Chars] [Input_file [Output_file]]

Merci d'avance pour votre aide.
ps : si jipicy tu es dans le coin je sais que tu as sûrement la bonne réponse ;-))

Meilleures réponses pour « [Korn Shell] Commande UNIQ » dans :
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...
Comment récupérer le résultat d'une commande dans une variable VoirComment récupérer le résultat d'une commande dans une variable Préambule Syntaxe Exemples Préambule Il est bien souvent nécessaire de récupérer le résultat d'une commande (ou de son code retour) dans une variable afin de pouvoir...
Bash - Les paramètres VoirIntroduction Les paramètres positionnels Exemple 1 Les paramètres spéciaux Exemple 2 Initialiser des paramètres - La commande "set" - Exemples - La commande "shift" - Exemple 3 Introduction Il est possible de fournir à un script,...
Linux - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire le système...
Systèmes UNIX - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système...

1

jipicy, le 26 mar 2008 à 17:12:49
  • +3

Salut,

Avec "sort" et l'option -u (uniq) ça devrait le faire :

[tmpfs]$ cat plop
ES.PREVCT.M.ENV.0.D20080326.H220000.csv_20080326_110800
ES.PREVCT.J.ENV.0.D20080326.H220000.csv_20080326_085700
ES.PREVCT.J.ENV.0.D20080325.H220000.csv_20080325_144200
ES.PREVCT.J.ENV.0.D20080325.H220000.csv_20080325_144100
ES.PREVCT.J.ENV.0.D20080325.H220000.csv_20080325_143700
ES.PREVCT.J.ENV.0.D20080325.H220000.csv_20080325_142100

[tmpfs]$ sort -t "_" -k 1,1 -u plop
ES.PREVCT.J.ENV.0.D20080325.H220000.csv_20080325_144200
ES.PREVCT.J.ENV.0.D20080326.H220000.csv_20080326_085700
ES.PREVCT.M.ENV.0.D20080326.H220000.csv_20080326_110800
[tmpfs]$    
Ah oui, c'est pas 2 lignes uniques, mais 3 qu'il reste ;-))
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.

Répondre à jipicy

2

 cilv1, le 26 mar 2008 à 17:57:10

Je n'osais pas espérer une réponse du maître jipicy, mais une fois de plus tu as trouvé la solution miracle !

Merci encore et bonne continuation :-))

Répondre à cilv1