Pb de tris par date dans un fichier txt avec plrs séparateurs [resolu] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 20-10-2003 à 16:10:22
Si je comprends bien le résultat que tu as obtenu n'est pas correct.
Je ne maitrise pas "sort". Donc les options je ne peux pas te dire si elles sont bonnes. (En plus je ne suis pas sous Linux en ce moment...)
Par contre, je remplacerai bien le 'more' par un 'cat' étant donné que le more marque une pause à chaque page pleine. Si tu as besoin d'une pause, essaye plutôt :
cat fichier | sort ... | more
ou
sort ... < fichier | more
Marsh Posté le 20-10-2003 à 16:19:53
En fait je ne sais pas si mon résultat est correct, comme il a 400 lignes à vérifier, c'est un peu long.
A première vue il paraît correct, mais je n'en ai pas la certitude.
Dans mon cas, more ou cat sont indifférents, je ne cherche qu'une instruction capable de lire un fichier pour rediriger la sortie standard vers le sort qui ne travaille qu'avec une redirection vers son entrée.
Du coup la pause est invisible car le résultat final est redirigé vers un fichier "fichier_tri".
Ce que je me demande c'est s'il ne fait pas aussi un tri sur la seconde date et si oui comment cela perturbe le premier tri.
Considère-t-il les champs comme uniquement ce qu'il y a avant le / et non la totalité ce qui se trouve avant.
Car s'il prend tout ça pour le premier champs :
c1326714:3f45d129:4dbd:0001 [LC0360] [LC0360] [Robot_ATL_01: 104] Good 10/17/03 01:27:34 104266.88 104266.88 10/09/03 22:33:10 1065731590 Robot DLT
Le tri risque d'être gravement faussé, même si je force le tri en numérique par un -n
Marsh Posté le 20-10-2003 à 17:18:31
Code :
|
Code :
|
Code :
|
edit : doit y avoir moyen de faire + simple via sed, awk et cut mais je connais pas.
a+
Marsh Posté le 21-10-2003 à 11:57:48
Malheureusement ça ne marche pas même sous linux, car le tri numérique doit s'appliquer sur les 3 champs date, d'abord l'année puis le mois puis le jour.
Le script perl marche tout à fait par contre.
Encore une fois merci à alligator421
Marsh Posté le 20-10-2003 à 15:51:54
Voilà je sors un rapport omniback donc sous HP UX 11.0 au format txt
Les lignes se présentent comme suit (il y en a environ 400) :
c1326714:3f45d129:4dbd:0001 [LC0360] [LC0360] [Robot_ATL_01: 104] Good 10/17/03 01:27:34 104266.88 104266.88 10/09/03 22:33:10 1065731590 Robot DLT
Il s'agit d'une seule et même ligne.
Mon but : faire un tri sur la première date qui apparaît (ici 10/17/03).
Ce que j'ai fait :
more fichier | sort -o fichier_tri -t/ -k3 -k2 -k1
Ma question :
En indiquant le séparateur de champs comme étant le /, ma commande est-elle suffisante ? pour un tri uniquement sur la première date la seconde (ici 10/09/03) ne m'intéressant pas du tout.
Message édité par raistlin72 le 21-10-2003 à 12:00:36