Bonjour

Étant novice sur les commandes unix je vous expose mon souci,
je dois rechercher dans un répertoire qui contient des fichiers csv un ensemble de valeurs.

Par exemple si je me positionne dans le répertoire où sont les fichiers csv et que je saisis la commande :
grep 123456 *.csv puis enter alors j'obtiens bien en sortie standard la liste des lignes des fichiers csv dans lesquelles figure la valeur 123456

Je souhaite maintenant automatiser ce process, j'ai donc écrit un script pour lire un ensemble de valeurs contenues dans un fichier texte puis pour chacune d'entre elles faire le grep afin de la rechercher dans les fichier csv et écrire la sortie standard dans un fichier texte, voici le script

Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
#!/bin/sh
ext=*.csv
res=resultat.txt
while read line
do
grep $line $fic$ext >> $res 2>1;
done < liste_dossiers.txt

liste_dossiers.txt contient la liste de valeurs à chercher
et resultat.txt contient les lignes trouvées dans les fichiers csv.

Le problème est que j'obtiens toujours à l'exécution un fichier resultat.txt qui est vide je ne comprends pas pourquoi

Auriez vous une idée ?

Merci pour votre aide