Shell bash analyse fichier
benji54000
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Débutant en scripting linux sous bash, je souhaite créer un script qui scan le contenu des fichiers à l'aide de grep et qui ensuite effectue des manipulations sur ses fichiers.
Un exemple : si je fais un grep "virus" * dans mon script le problème étant qu'il me retournes évidemment les fichiers ou il y a la chaîne de caractère virus dedans mais évidemment le script aussi puis qu'il y la fameuse ligne grep "virus" * donc voici mes deux problèmes :
- de un comment faire pour ignorer mon script avec un grep ?
- 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 ?
S'il vous plaît aidez-moi ...
Merci d'avance.
Cordialement
Benji54000
Débutant en scripting linux sous bash, je souhaite créer un script qui scan le contenu des fichiers à l'aide de grep et qui ensuite effectue des manipulations sur ses fichiers.
Un exemple : si je fais un grep "virus" * dans mon script le problème étant qu'il me retournes évidemment les fichiers ou il y a la chaîne de caractère virus dedans mais évidemment le script aussi puis qu'il y la fameuse ligne grep "virus" * donc voici mes deux problèmes :
- de un comment faire pour ignorer mon script avec un grep ?
- 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 ?
S'il vous plaît aidez-moi ...
Merci d'avance.
Cordialement
Benji54000
A voir également:
- Shell bash analyse fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Classic shell - Télécharger - Personnalisation
7 réponses
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))
- 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»
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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?
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.
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".