UNIX / KSH : Comparer deux fichiers plats

Fermé
Tuio - 24 août 2005 à 16:12
 adil.N - 30 avril 2008 à 14:30
Bonjour,
Sous Unix, je suis en train de réaliser une petite application me permettant de comparer deux fichiers que je lui donne en entrée.

Chaque ligne est de la forme suivante :
date_courante|application|résultat|

Ces fichiers sont des logs réalisés après des exécutions différentes mais avec les mêmes données en entrées (en gros c'est des tests de non regression). Le problème est que la comparaison directe de ces deux fichiers me donne un FALSE en sortie à cause de la date_courante et je ne peux pas supprimer ce "champs" (nécessaire plus tard pour l'archivage).

Ma première solution fonctionnelle était la suivante :
- Remplacer les "champs" variables par * dans les fichiers de référence
- Comparer les fichiers de résultats aux fichiers de référence "champs à champs" (séparé par |) en omettant les "champs" avec un * dans le fichier de référence.

Exemple :
fichier de référence :
*|toto.ksh|OK|
fichier de résultat :
01011900010553|toto.ksh|OK|
On compare les champs 2 et 3 mais pas le champ 1.

Mon problème est de découper mes lignes ainsi :/ J'ai bien pensé à faire un grep mais il ne me donne pas les résultats attendus.

Merci de votre aide.

2 réponses

Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009 295
24 août 2005 à 18:04
Salut,

bon, je connais pas bien, mais il me semble que le découpage ca se fait tres bien avec awk ou sed
man awk
man sed
surtout lorsque tu sépares les champs avec le meme caractère

si tu connaissais ces commandes, ben désolé pour l'intervention sans doute inutile... ;)

Phiphi
0
j'ai lu votre demande mais cinserement je suis un debutant pour les Khs et je vous demande de m'aider sur la methode pour cree un fichier et insere les donnees (separe par un pipe|) .
est c'est possible car je travail sur un projet et il faut que j'ouvre les fichiers et lire les donnees pui les stocker dans un autre fichier
0