Pb avec la commande Uniq

Résolu/Fermé
JsuisNul Messages postés 122 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 14 février 2024 - 4 mars 2013 à 16:45
 JsuisNul - 5 mars 2013 à 09:42
Bonjour,

Me re-voila déjà même si j'aurais préféré pouvoir me débrouiller tous seul...
Pour ceux qui ont suivi ma précédente question, celle-ci vient de ce que je souhaite faire après un comm ou j'obtiens le fichier suivant :

mec1;pepito;rue;CDD
mec1;pepito;rue;CDI
mec3;jean;rue;CDD
mec5;pierre;rue;CDI

j'aimerai donc utilisé la commande uniq pour ne prendre que les lignes uniques par rapport au premier champs.

le résultat attendu est :

mec3;jean;rue;CDD
mec5;pierre;rue;CDI

dans ma première version de mon script j'utilisais la commande comme suit :

uniq -u --check-chars=7 (uniq appliqué sur les 7 premiers caractères)

mais --check-chars= n'est pas reconnu.

j'ai donc essayer avec uniq -u -w=7 mais le paramètre -w n'est pas reconnu non plus...

Connaissez-vous une commande équivalente ?

merci d'avance à tous.




3 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
4 mars 2013 à 16:56
Salut,

j'ai donc essayer avec uniq -u -w=7 mais le paramètre -w n'est pas reconnu non plus..
T'es sûr ?

$ sort f1 f2 | uniq -u
mec1;pepito;rue;CDD
mec1;pepito;rue;CDI
mec3;jean;rue;CDD
mec5;pierre;rue;CDI

$ sort f1 f2 | uniq -u -w 7
mec3;jean;rue;CDD
mec5;pierre;rue;CDI

$ 

0
JsuisNul Messages postés 122 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 14 février 2024 1
4 mars 2013 à 17:01
voila ce que j'ai quand j'exécute mon script
uniq: illegal option -- w
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
4 mars 2013 à 17:03
Quel système ? Quel shell ?
0
JsuisNul Messages postés 122 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 14 février 2024 1
4 mars 2013 à 17:04
le message complet :
uniq: illegal option -- w
Usage: uniq [-c | -d | -u] [-f Fields] [-s Chars] [-Fields] [+Chars] [Input_file [Output_file]]


et quand je vois la liste des options proposées y a pas ce foutu -w...
0
JsuisNul Messages postés 122 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 14 février 2024 1
4 mars 2013 à 17:08
tu peux m'éclairer sur la façon de savoir ça ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
4 mars 2013 à 17:28
pour le système :
uname -a
ou
lsb_release -a


pour le shell :
echo $0
ou
echo $SHELL
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
5 mars 2013 à 08:09
hello
avec awk
$ awk -F ";" '{a[$1]++; b[$1]=$0} END{for(n in a)if(a[n]<2)print b[n]}' fichier
mec3;jean;rue;CDD
mec5;pierre;rue;CDI
$ 
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
5 mars 2013 à 08:18
Salut,

Ben t'en as mis du temps... ;-))

Merci.
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
5 mars 2013 à 08:21
uniq -w sur AIX, le cas était désespéré
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
5 mars 2013 à 08:25
Ben c'est bien dommage que cette option ne soit pas portée sur AIX et apparemment sur les BSD aussi ;-(

Tout comme il est fort regrettable que la commande "uniq" n'ait pas la possibilité de définir un séparateur par défaut, comme la plupart des autres commandes similaires, ce qui serait bien utile et notamment ici. ;-(
0
Hello à tous,

Dubcek, j'ai testé ton awk et ça marche impec !!
Merci à toi et aussi à Zipe31.

J'espère que j'arriverai à réhabiliter la suite de mon script car si j'ai compris vos échange la plateforme utilisé n'est pas terrible...

A bientôt peut être et merci encore.
0