[commande] Problème avec la commande uniq. (résolu)

Ce qui ne concerne ni le forum ni des problèmes
Avatar de l’utilisateur
Stdrome1209
yeomen
Messages : 266
Inscription : sam. 29 nov. 2014, 19:39

[commande] Problème avec la commande uniq. (résolu)

Message par Stdrome1209 » mar. 15 mars 2016, 17:02

Salut à toute et à tous, je suis actuellement en train de faire une petite révision de mes commandes Unix, et je rencontre un problème que je ne parviens pas à expliquer avec "uniq"

J'ai un fichier noms.txt dans lequel il y'a des doublons que j'ai auparavant trié avec sort :

Code : Tout sélectionner

Albert
Albert
Benoît
Benoît
Corentin
Corentin
Fabrice
Fabrice
Mathieu
Mathieu
Mélanie
Mélanie
Sophie
Sophie
J'utilise donc la commande uniq pour supprimer ces doublons :

Code : Tout sélectionner

uniq noms.txt noms.txt
Le problème est que dans ce cas mon fichier noms.txt est remplacé par un fichier vide :?

J'ai aussi essayé :

Code : Tout sélectionner

uniq noms.txt > noms.txt
Et là encore je me retrouve avec un fichier vide.

Par ailleurs ça fonctionne quand je génère un nouveau fichier nom.txt.copie

Code : Tout sélectionner

uniq noms.txt noms.txt.copie
Pouvez m'éclairer ?
Dernière modification par Stdrome1209 le mar. 15 mars 2016, 17:55, modifié 1 fois.
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.

Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.

Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.

benjarobin
Maître du Kyudo
Messages : 15473
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [commande] Problème avec la commande uniq.

Message par benjarobin » mar. 15 mars 2016, 17:35

Oui tu n'as pas le droit d'utiliser le même fichier pour l'entrée comme pour la sortie. cela parait logique en faite...
Ce qui se passe c'est que le programme ou bash vide le fichier de sortie, puis commence à lire le fichier d'entrée, mais il est maintenant vide car c'est le même fichier...

Sinon pour information sort possède une option -u pour ne pas avoir de duplication
Zsh | KDE | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)

Avatar de l’utilisateur
Stdrome1209
yeomen
Messages : 266
Inscription : sam. 29 nov. 2014, 19:39

Re: [commande] Problème avec la commande uniq.

Message par Stdrome1209 » mar. 15 mars 2016, 17:54

Merci beaucoup, je vais donc utiliser "sort -ou"
benjarobin a écrit :Oui tu n'as pas le droit d'utiliser le même fichier pour l'entrée comme pour la sortie. cela parait logique en faite...
Ce qui se passe c'est que le programme ou bash vide le fichier de sortie, puis commence à lire le fichier d'entrée, mais il est maintenant vide car c'est le même fichier...
Je n'avais pas vu ça comme ça, je pensais que bash se contentais d'écrire le résultat dans un fichier au lieu de l'afficher dans la console.
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.

Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.

Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.

benjarobin
Maître du Kyudo
Messages : 15473
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [commande] Problème avec la commande uniq. (résolu)

Message par benjarobin » mar. 15 mars 2016, 19:26

Euh, oui bash se contente d'écrire le résultat dans un fichier on est bien d'accord...
Sauf qu'ici tu demandes à bash de vider un fichier / d'en créer un nouveau vide, puis de lancer le programme, il le fait dans cet ordre !
Zsh | KDE | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)

Répondre