(Courriels de diversion: <decryptages@stipulees-illicite.com> <jalonneraient@mercuriales-flippers.com> <deroute@relayer-degazant.com> <repus@calibrent-grossissent.com> <irrite@urgences-grâce.com> <favoriserait@debarquerent-colmatera.com> <entr'aperceviez@encastrera-libres.com> <sillonnaient@cauteriseriez-repererait.com> <spoliateur@appele-depaqueter.com> <gendarme@assermenter-sportivement.com> )


On Thu, 22 Mar 2001, Philippe Midol-Monnet wrote:

> "Jean-François THAMIE" a écrit :
> >
> > Voila, j'ai un fichier texte de 254 de longueur contenant des enregistrements
> > dont la clé est de longueur 13
> > Je sais que j'ai un article en double en isolant la clé comme ceci
> > cat ${FICHIER_A}|cut -c1-13|sort|uniq -d >${FICHIER_S}U
> > mais je n'arrive pas a constituer un nouveau fichier contenant tout les articles
> > complets et UNIQUES de ${FICHIER_A}
> > Si quelqu'un a une idée avant que je trouve a force de chercher
>
>
> Tu n'as pas besoin de faire un cut avant de trier. La commande sort
> permet de choisir la portion de ligne servant de clé. La commande uniq a
> le meme type de fonctionnement. Par contre je prefere ne pas te donner
> la syntaxe le man la connait bien mieux que moi.

man uniq :

       -s, --skip-chars=N
              avoid comparing the first N characters

       -w, --check-chars=N
              compare no more than N characters in lines

man sort :
       -k POS1[,POS2]
              start a key at POS1, end it *at* POS2

              field  numbers  and  character offsets are numbered
              starting with one (contrast  with  zero-based  +POS
              form)

       -t SEP use SEParator instead of non- to whitespace transi­
              tion

=> En théorie, et si j'ai bien compris la question, et en supposant qu'il
n'y ait pas d'espace/tabulation dans la clé :

sort -k 1.1,1.13 ${FICHIER_A} | uniq --check-cars=13 >  ${FICHIER_S}U

devrait le faire.

[ Xavier Montagutelli          `""'                                   ]
[ INSA Toulouse                0--0                                   ]
[               ---------oOOo---()---oOOo----------                   ]
[ Dpt de Math / Service Informatique  Tel: +33 5 61 55 93 38 / 67     ]
[ 135, Avenue de Rangueil             Fax: +33 5 61 55 93 20 / 60     ]
[ 31077 Toulouse Cedex 4              Mel: montagut@gmm.insa-tlse.fr  ]

---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@savage.iut-blagnac.fr>Le CULTe sur le web: <URL:http://www.CULTe.org/>