Bonjour à tous,
Je souhaite réaliser une opération simple de recherche dans un fichier à partir d'une liste.
J'ai des lignes dans un fichier avec plusieurs champs:
Format du fichier DATA (Les lettre a,b,c pour le numéro de ligne, et les nombres 1,2,3 pour le numéro du champ.
DATA
Ligne 1 Champ a1 Champ a2 Champ a3...
Ligne 2 Champ b1 Champ b2 Champ b3...
Ligne 3 Champ c1 Champ c2 Champ c3...
Ligne 4 Champ d1 Champ d2 Champ d3...
Ligne 5 Champ e1 Champ e2 Champ e3...
Dans un deuxième fichier j'ai une liste de champs.
LISTE
Ligne1 Champ a2
Ligne2 Champ c2...
Ligne3 Champ e2...
Je cherche à faire ressortir toutes les lignes qui ressortent de DATA lorsque le Champ [a-z]2 du fichier LISTE match avec le Champ [a-z]2 du fichier DATA
Dans ce cas précis je cherche à récupérer du fichier DATA
Fichier résultat
Ligne 1 Champ a1 Champ a2 Champ a3...
Ligne 3 Champ c1 Champ c2 Champ c3...
Ligne 5 Champ e1 Champ e2 Champ e3...
J'ai trouvé une solution avec sed en générant une série de commande sed à partir de mon fichier LISTE via excel.
sed -n '/12345/p' DATA;sed -n '/6789A/p' DATA;sed -n '/BCDEF/p' DATA
En procédant de cette manière, cela fonctionne très bien or c'est très long car le fichier DATA fait plus d'1go de données texte :/
En effet je redemande à chaque commande de reparcourir le fichier DATA, alors que si je pouvais travailler avec sed sur une seule ouverture du fichier je gagnerai en temps d'exécution, à moins que je ne me trompe et que sed n'est pas du tout adapté pour ce cas.
Si quelqu'un a déjà été confronté à ce cas, je suis preneuse.
Partager