Pb script unix pour faire un grep ds 1 while
Résolu/Fermé
mounou2301
-
14 janv. 2012 à 20:21
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 15 janv. 2012 à 11:01
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 15 janv. 2012 à 11:01
A voir également:
- Pb script unix pour faire un grep ds 1 while
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Fichier executable unix ✓ - Forum MacOS
- Microsoft activation script - Accueil - Windows
- Ipconfig unix ✓ - Forum Linux / Unix
1 réponse
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
14 janv. 2012 à 20:25
14 janv. 2012 à 20:25
Salut,
C'est le "$fic" dans "grep $line $fic$ext >> $res 2>1; " ?
il n'est initialisé nulle part ;-\
Un petit conseil. les variables lorsqu'elles sont concaténées, il vaut mieux les écrire "${fic}${ext}" ;-))
C'est le "$fic" dans "grep $line $fic$ext >> $res 2>1; " ?
il n'est initialisé nulle part ;-\
Un petit conseil. les variables lorsqu'elles sont concaténées, il vaut mieux les écrire "${fic}${ext}" ;-))
14 janv. 2012 à 20:30
14 janv. 2012 à 20:39
C'est quoi le "$fic" dans "grep $line $fic$ext >> $res 2>1; " ?
Tu es dans le bon répertoire au moins ?
14 janv. 2012 à 21:02
en fait le $fic represente la racine du fichier a chercher
par exemple $fic= toto et $ext=*.csv
pour aller chercher dans tous les fichiers du type toto*.csv
j'ai aussi essayé la commande suivante dans le while :
grep $line *.csv >> resultat.txt mais ca ne marche pas, le fichier resultat.txt reste désespérément vide
15 janv. 2012 à 10:15
par exemple $fic= toto et $ext=*.csv
pour aller chercher dans tous les fichiers du type toto*.csv
Non, ça ce n'est pas bon ;-(
Si "$[fic}" (avec les accolades pour les raisons expliquées plus haut) représente la racine (ou préfixe), alors le suffixe (extension) doit juste être initialisé comme :
ext=".csv"
et non :
ext="*.csv"
dans ce cas là, le préfixe est inutile vu que l'astérisque (*) représente tous ce qui se trouve avant le point précédent "csv" !
A quoi ressemble ton fichier "liste_dossiers.txt" ? Affiches-en un bout avec la commande :
cat -A liste_dossiers.txt
Est-ce que cette commande lancée depuis le répertoire contenant les ".csv" marche :
15 janv. 2012 à 10:37
exemple:
8182970
8184202
8186894 etc..
Si je tape en ligne de commande
grep 8182970 *.csv >> resultat.txt ca marche, ca me ramene les lignes contenant la valeur 8182970
J'ai changé le scipt en mettant dans la boucle while la simple commande :
grep $line *.csv >> resultat.txt mais malheureusement le fichier resultat.txt reste vide
si je mets grep $line .csv >> resultat.txt ca me sort une erreur => .csv No such file or directory
J'ai même rajouté un echo $line avant le grep dans la boucle : à l'exécution il m'affiche bien toutes les valeurs du fichier liste_dossiers.txt mais le résultat est toujours le même : resultat.txt est vide après exécution...