Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
954 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  petit_programe en bash

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

petit_programe en bash

n°2222391
newera
Posté le 15-03-2014 à 00:23:31  profilanswer
 

Bonjour tous le monde,  
Voilà je viens sur ce forum pour vous demander un peu d'aide concernant un script,  
Le but de ce script est de chercher une chaîne de caractère dans une arborescence de fichier.
 voici le code source de mon script  

Code :
  1. #./sbin/bash
  2. for i in *
  3.         do 
  4.         if [  -z  `cat $i | grep int connect`  ]  note 1
  5.         then
  6.         echo `pwd` note 2
  7.         echo $i
  8.         fi 
  9.         cd $i 2>erreurs.txt && /home/baldr00/SClinux/recurls.sh&& cd ..
  10.         rm erreurs.txt 2> erreurs.txt || rm erreurs.txt note 3
  11.         done
  12.         cd ..


 
note 1 : voila ce test ne marche pas, en tout cas le programme pense qu'il est toujours vrai, le but de ce test est de savoir si dans le fichier concerné il y la chaine de caractère rechercher ici "int connect"
 
note 2 : ceci nous permet d'avoir le chemin pour regarder le fichier où la chaine de caractère a été trouvé,
 
note 3: Ces lignes un peu loufoque permet de progresser dans l’arborescence et de supprimer si il existe le fichier d'erreur renvoyé pas cd ( car on a essayé de cd un fichier)  
 
Voilà, merci d'avoir pris du temps d'avoir lut mon message ( bonne journée)  
 
 

mood
Publicité
Posté le 15-03-2014 à 00:23:31  profilanswer
 

n°2222394
Farian
Posté le 15-03-2014 à 01:42:55  profilanswer
 

Bonjour !
 
Pour la recherche récursive, le plus simple est de combiner find et xargs :  
 
find . -print | xargs grep 'int connect'
 
vous donnera la liste des fichiers qui contiennent la chaine (bien protéger l'espace entre int et connect pour que grep ne considère pas ça comme deux arguments.
 
Pour effacer les fichiers, a priori un | xargs rm -f devrait faire l'affaire.
 
Bonne continuation !

n°2222398
philippe06
Posté le 15-03-2014 à 09:54:55  profilanswer
 

Farian a écrit :

Bonjour !
 
Pour la recherche récursive, le plus simple est de combiner find et xargs :  
 
find . -print | xargs grep 'int connect'
 
vous donnera la liste des fichiers qui contiennent la chaine (bien protéger l'espace entre int et connect pour que grep ne considère pas ça comme deux arguments.
 
Pour effacer les fichiers, a priori un | xargs rm -f devrait faire l'affaire.
 
Bonne continuation !


il y a aussi une option -r dans grep qui fait ça, pas besoin de find


---------------
Aimer les femmes intelligentes est un plaisir de pédéraste. (Charles Baudelaire) - Vous vulgarisez :o (Jean-Kevin Dubois)
n°2222400
newera
Posté le 15-03-2014 à 11:31:26  profilanswer
 

Merci la ligne j'ai enfin put trouver ce que je cherchais =)  
Bonne journée.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  petit_programe en bash

 

Sujets relatifs
Petit aide sur le logiciel Visual Basic 2010[BASH] Probleme Difference
Aide pour un petit programme en CUrgent!!! programe qui valide un mail en javascool
Petit un problème avec structureConcaténation foireuse de 2 variables sous bash
[rech] programmeur confirmé pour création petit club informatique[BASH] couper un fichier à une ligne précise
Petit problème ajax avec JSON[bash] reprendre la main après une redirection de l'entrée standard
Plus de sujets relatifs à : petit_programe en bash


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR