-
Commande sort
Bonjour,
j'ai besoin sur la commande de sort permettant de trier les fichiers.
Résumé du pb :
J'ai créé des fichiers plats représentants des tables de base de donnée pour faire un chargement avec sql*loader.
Mais d'abord je dois dédoublonner ces fichiers.
Je me sert donc de la commande sort avec l'option -u pour le dédoublonnage.
Le dédoublonnage ne doit porter que sur les clés primaires. Hors ces clés primaires ne sont pas toutes de la même taille.
Exemple:
abcde;W;2;3
abc;W;2;3
abc;W;4;5
Ma clé primaire est composée des 2 1er champs de chaque ligne.
Comment faire pour que la commande sort analyse dynamiquement la longueur de la clé primaire ?? parce que pour la 1er ligne elle vaut 7 de long (avec le ;) et pour les 2 autres elle vaut 5 ....
Merci de votre aide
-
???
Je ne saisis pas très bien ton problème.
Tu parles de trier des fichiers puis de trier les données qu'il y a dans un fichier ... A moins que tes fichiers soient nommés ainsi ?
abcde;W;2;3
abc;W;2;3
abc;W;4;5
Si veux gérer une base de données en shell, t'es pas sorti de l'auberge, mais je pense qu'awk t'aidera un peu.
-
ca c'est mes données qui sont dans un fichier.
abcde;W;2;3
abc;W;2;3
abc;W;4;5
et moi il faudrait que je tri ce qu'il y a l'intérieur du fichier en supprimant les doublons.
Je mets l'options -k pour trier que sur une partie de ma ligne.
Mais il se trouve que cette partie sur laquelle je veu trier n'est pas toujours de la même longueur ...
Du coup dans certain cas le tri peut se faire sur une partie des données qui se sont pas représentatives pour mon tri.
Donc ma question est : est-il possible avec cette commande sort de faire un tri que sur un champ sachant que ce champ peut varier de longueur?
-
Ok j'ai trouvé
sort -t";" -k 1,2