Script pr extraire des lignes et les copier ds un nveau fichier
Résolu
kiki
-
feeder Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
feeder Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Excusez-moi si je dis de grosses bêtises mais je suis novice en script shell...
Je dispose dans un répertoire de 30 répertoires contenant des logs.
Je souhaiterai extraire de ces fichiers toutes les lignes contenant par exemple le mot "connexion" mais ne contenant pas le mot "demo" et copier le resultat dans un nouveau fichier....
Par exemple, quelque chose de ce genre:
grep -r connexion "C:\tmp\logs\log20121030\*.log" > "C:\tmp\essai.txt"
grep -v demo "C:\tmp\essai.txt" > "C:\tmp\essai2.txt"
Il me crée mes fichiers essai, mais vide, alors que je suis sûr que ces fichiers contiennent la donnée.
Mon poste est encore sous windows XP.
Encore merci par avance à tous ceux qui pourront ou tenteront de m'aider.
Excusez-moi si je dis de grosses bêtises mais je suis novice en script shell...
Je dispose dans un répertoire de 30 répertoires contenant des logs.
Je souhaiterai extraire de ces fichiers toutes les lignes contenant par exemple le mot "connexion" mais ne contenant pas le mot "demo" et copier le resultat dans un nouveau fichier....
Par exemple, quelque chose de ce genre:
grep -r connexion "C:\tmp\logs\log20121030\*.log" > "C:\tmp\essai.txt"
grep -v demo "C:\tmp\essai.txt" > "C:\tmp\essai2.txt"
Il me crée mes fichiers essai, mais vide, alors que je suis sûr que ces fichiers contiennent la donnée.
Mon poste est encore sous windows XP.
Encore merci par avance à tous ceux qui pourront ou tenteront de m'aider.
A voir également:
- Script pr extraire des lignes et les copier ds un nveau fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Extraire une video youtube - Guide
2 réponses
C'est beaucoup plus simple en faisant un pipe (prononcer "païpe") :
Tu peux empiler plusieurs commandes avec | (par exemple cmd1 | cmd2 | cmd3 | ...) et donc enchaîner autant de grep que tu le souhaites (ou même d'autres commandes), c'est comme un lego.
L'idée ensuite c'est que quand ta chaîne de commandes ne fait pas ce qu'il faut, tu la construis petit à petit et tu regardes à chaque fois le résultat écrit dans le terminal (par exemple cmd1, puis cmd1 | cmd2, puis cmd1 | cmd2 | cmd3 etc).
Bonne chance
grep -nr "connexion" /mon/dossier/de/logs | grep -v "demo" > /mon/fichier.txt
Tu peux empiler plusieurs commandes avec | (par exemple cmd1 | cmd2 | cmd3 | ...) et donc enchaîner autant de grep que tu le souhaites (ou même d'autres commandes), c'est comme un lego.
L'idée ensuite c'est que quand ta chaîne de commandes ne fait pas ce qu'il faut, tu la construis petit à petit et tu regardes à chaque fois le résultat écrit dans le terminal (par exemple cmd1, puis cmd1 | cmd2, puis cmd1 | cmd2 | cmd3 etc).
Bonne chance