Shell bash analyse fichier
Fermé
benji54000
Messages postés
16
Date d'inscription
samedi 4 juillet 2009
Statut
Membre
Dernière intervention
16 mars 2014
-
31 oct. 2012 à 19:31
Utilisateur anonyme - 2 nov. 2012 à 18:00
Utilisateur anonyme - 2 nov. 2012 à 18:00
A voir également:
- Shell bash analyse fichier
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Fichier iso - Guide
7 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
31 oct. 2012 à 19:57
31 oct. 2012 à 19:57
Salut,
- de un comment faire pour ignorer mon script avec un grep ?
Il suffit de mettre ton script dans un autre répertoire et d'y inclure le répertoire de recherche, soit en dur soit en paramètre.
- de deux comment faire pour que mon script reprenne les noms des fichiers retournés par le grep et les déplacent ensuite dans un autre dossier ?
man grep pour les options !
Et notamment l'option "-l" (c'est un ELLE minuscule et pas un UN (1))
- de un comment faire pour ignorer mon script avec un grep ?
Il suffit de mettre ton script dans un autre répertoire et d'y inclure le répertoire de recherche, soit en dur soit en paramètre.
- de deux comment faire pour que mon script reprenne les noms des fichiers retournés par le grep et les déplacent ensuite dans un autre dossier ?
man grep pour les options !
Et notamment l'option "-l" (c'est un ELLE minuscule et pas un UN (1))
Utilisateur anonyme
31 oct. 2012 à 21:41
31 oct. 2012 à 21:41
- de un comment faire pour ignorer mon script avec un grep ?
man grep
et faire une recherche sur le terme «exclude»
man grep
et faire une recherche sur le terme «exclude»
benji54000
Messages postés
16
Date d'inscription
samedi 4 juillet 2009
Statut
Membre
Dernière intervention
16 mars 2014
1 nov. 2012 à 12:12
1 nov. 2012 à 12:12
Merci beaucoup à vous d'avoir répondu si vite je vais regarder tout ça de plus près :)
benji54000
Messages postés
16
Date d'inscription
samedi 4 juillet 2009
Statut
Membre
Dernière intervention
16 mars 2014
2 nov. 2012 à 12:54
2 nov. 2012 à 12:54
Bonjour,
j'ai trouvé ! find /chemin/rep -name "*" -exec grep -Hn "string" {} \; voilà ce qui me fallait après avoir déplacer mon script dans un autre dossier ! il me manque juste une petite chose créer un log dans lequel on pourra voir tout ce qui fonctionne ou pas dans mon script . J'ai déjà testé script.sh >> journal.log mais évidemment sa ne fait que recopier mon script dans un log , moi je voudrais que le log enregistre vraiment tout ce qui s'inscrit dans le terminal au fur et à mesure que le script s'exécute.
Merci d'avance.
Cordialement
Benji54000
j'ai trouvé ! find /chemin/rep -name "*" -exec grep -Hn "string" {} \; voilà ce qui me fallait après avoir déplacer mon script dans un autre dossier ! il me manque juste une petite chose créer un log dans lequel on pourra voir tout ce qui fonctionne ou pas dans mon script . J'ai déjà testé script.sh >> journal.log mais évidemment sa ne fait que recopier mon script dans un log , moi je voudrais que le log enregistre vraiment tout ce qui s'inscrit dans le terminal au fur et à mesure que le script s'exécute.
Merci d'avance.
Cordialement
Benji54000
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
2 nov. 2012 à 13:21
2 nov. 2012 à 13:21
Salut,
Rajoutes ça après le shebang de ton script :
Rajoutes ça après le shebang de ton script :
exec > journal.log
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
Modifié par qqchquicommenceparQ le 2/11/2012 à 13:37
Modifié par qqchquicommenceparQ le 2/11/2012 à 13:37
si tu n'as pas de critère pour -name, alors autant ne pas mettre cette directive.
d'ailleurs, à quoi sert ce find ?
sans avoir à déplacer ton script, tu aurais pu faire quelque chose comme ça:
je voudrais que le log enregistre vraiment tout ce qui s'inscrit dans le terminal au fur et à mesure que le script s'exécute.
pour quoi faire?
d'ailleurs, à quoi sert ce find ?
sans avoir à déplacer ton script, tu aurais pu faire quelque chose comme ça:
grep --recursive --exclude="monScript" 'string' ./
je voudrais que le log enregistre vraiment tout ce qui s'inscrit dans le terminal au fur et à mesure que le script s'exécute.
pour quoi faire?
benji54000
Messages postés
16
Date d'inscription
samedi 4 juillet 2009
Statut
Membre
Dernière intervention
16 mars 2014
2 nov. 2012 à 17:07
2 nov. 2012 à 17:07
Re bonjour,
j'ai testé le exec >journal.log et malheureusement sa ne marche pas du tout comme je veux , ça éxécute le script mais après sa bug plus rien dans le terminal... c'est comme un read en boucle ... sa enregistre tout ce qui ce passe dans un log sa c'est cool mais dans le terminal on ne voit plus rien...
Et malheureusement je suis toujours bloqué sur le find /chemin/rep -name "*" -exec grep -Hn "string" {} \; parce que au lieu de me prendre les fichiers du dossiers que je lui ai indiqué avec le find il va me prendre tous les fichiers du systèmes, toutes les images , toutes les musiques , etc etc etc... et les déplacer :
mv 'find shell_tri -name "*" -exec grep -l -Hn "virus" {} \;' -t
shell_tri/corbeille
Donc qu'il me les déplacent dans le bon répertoire ça c'est cool mais le problème étant qu'il ne va pas au départ chercher dans un répertoire précis ... il va chercher dans tous le pc...
Merci d'avance.
Benji54000.
j'ai testé le exec >journal.log et malheureusement sa ne marche pas du tout comme je veux , ça éxécute le script mais après sa bug plus rien dans le terminal... c'est comme un read en boucle ... sa enregistre tout ce qui ce passe dans un log sa c'est cool mais dans le terminal on ne voit plus rien...
Et malheureusement je suis toujours bloqué sur le find /chemin/rep -name "*" -exec grep -Hn "string" {} \; parce que au lieu de me prendre les fichiers du dossiers que je lui ai indiqué avec le find il va me prendre tous les fichiers du systèmes, toutes les images , toutes les musiques , etc etc etc... et les déplacer :
mv 'find shell_tri -name "*" -exec grep -l -Hn "virus" {} \;' -t
shell_tri/corbeille
Donc qu'il me les déplacent dans le bon répertoire ça c'est cool mais le problème étant qu'il ne va pas au départ chercher dans un répertoire précis ... il va chercher dans tous le pc...
Merci d'avance.
Benji54000.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
2 nov. 2012 à 17:28
2 nov. 2012 à 17:28
J'ai testé le exec >journal.log et malheureusement sa ne marche pas du tout comme je veux , ça éxécute le script mais après sa bug plus rien dans le terminal... c'est comme un read en boucle ... sa enregistre tout ce qui ce passe dans un log sa c'est cool mais dans le terminal on ne voit plus rien...
Bon, vire le "exec ..." et lances ton script comme ça :
Et malheureusement je suis toujours bloqué sur le find /chemin/rep -name "*" -exec grep -Hn "string" {} \; parce que au lieu de me prendre les fichiers du dossiers que je lui ai indiqué avec le find il va me prendre tous les fichiers du systèmes, toutes les images , toutes les musiques , etc etc etc... et les déplacer :
Euh... tu dois avoir une erreur de syntaxe dans ton script (du style un espace après un slash dans un chemin) ;-((
La syntaxe : find /chemin/rep -name "*" -exec grep -Hn "string" {} \; ne peut en aucun cas te renvoyer autre chose que les fichiers contenus dans "/chemin/rep".
Bon, vire le "exec ..." et lances ton script comme ça :
./ton_script | tee -a journal.log
Et malheureusement je suis toujours bloqué sur le find /chemin/rep -name "*" -exec grep -Hn "string" {} \; parce que au lieu de me prendre les fichiers du dossiers que je lui ai indiqué avec le find il va me prendre tous les fichiers du systèmes, toutes les images , toutes les musiques , etc etc etc... et les déplacer :
Euh... tu dois avoir une erreur de syntaxe dans ton script (du style un espace après un slash dans un chemin) ;-((
La syntaxe : find /chemin/rep -name "*" -exec grep -Hn "string" {} \; ne peut en aucun cas te renvoyer autre chose que les fichiers contenus dans "/chemin/rep".
Utilisateur anonyme
2 nov. 2012 à 18:00
2 nov. 2012 à 18:00
benji54000,
t'es pigiste? t'es payé au caractère?
il sert à rien le find!
et le -H et le -n du grep non plus.
t'es pigiste? t'es payé au caractère?
il sert à rien le find!
et le -H et le -n du grep non plus.
mv $(grep --recursive --files-with-matches --exclude="monScript" 'string' ./) --target-directory="/path/ailleurs"