UNIX / KSH : Comparer deux fichiers plats

Tuio -  
 adil.N -
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   Statut Contributeur Dernière intervention   295
 
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
adil.N
 
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