Articles

Affichage des articles du juin, 2006

Trouver des fichiers contenant une regular expression

L'autre jour je devais parcourir toute une arborescence de fichiers pour trouver tous les fichiers de type CSS ayant un style utilisant l'attribut url("cheminrelatif/fichierimage.png") et ou il manquait le premier guillemet. Avec la combinaison des commandes find,egrep et surtout xargs j'ai pu trouver les fichiers en question tout de suite : find . -name '*.css' |xargs egrep -lr 'url\([^"]+"\)'

Les commandes "shell bash" sont trop belles !

Quand on administre des serveurs, ou quand on programme on a souvent des petits problèmes à résoudre en relation avec un certain nombre de fichiers ou une crackée de paramètres. Et franchement la connaissance du shell est un outil qui fait gagner beaucoup de temps. Un des problèmes qui vient souvent c'est un truc du style : pour chacun de ces trucs fait ça avec le truc... Et la boucle for est salvatrice, Ainsi je veux lancer un script ou une commande avec un paramètre différent qui se trouve être dans un fichier ListeParam.txt : for i in `cat ListeParam.txt` ; do (./MonScript.sh $i) ; done Et voilà ! mon script va se lancer autant de fois qu'il y a de lignes dans le fichier ListeParam.txt Simple, efficace, juste BÔ ! J'avais par exemple cette liste de noms de 352 tables SQL ListeTables.txt et un script php qui devait analyser la table sous MSSQL et généer du code pour la créer sous PostgreSql GenPgSqlCreate.php et bien avec un rapide : for i in `cat ListeTables.tx