Problème avec egrep
Résolu
tlep
Messages postés
596
Date d'inscription
Statut
Membre
Dernière intervention
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai un fichier type :
require_once '/home/lib/common/Mysql.class.php';
require_once ("/home/lib/machin.php"); //c'est bien
require_once '/home/lib/histoclient/Historisation.class.php';
require_once '/home/ws/site/WS_FORFAIT/FORFAIT_CLASS/conf_forfait.php';
include_once ("/home/lib/machintruc.php"); //c'est pas bien
echo "bonjour";
Je veux faire un egrep dessus afin de récupérer les valeurs concernées par le contenu des includes ou require.
J'ai essayé :
Pour commencer :
egrep -o "require|include:space:*.*.php" mon.fichier.txt
Mais egrep ne me renvoie que les includes :
include_once ("/home/lib/machintruc.php
Inversement, si j'essaie :
egrep -o "include|require:space:*.*.php" mon.fichier.txt
Il ne me renvoie que les require.
Pourtant, le pipe correspond bien au motif "OU" ?
Merci :-)
J'ai un fichier type :
require_once '/home/lib/common/Mysql.class.php';
require_once ("/home/lib/machin.php"); //c'est bien
require_once '/home/lib/histoclient/Historisation.class.php';
require_once '/home/ws/site/WS_FORFAIT/FORFAIT_CLASS/conf_forfait.php';
include_once ("/home/lib/machintruc.php"); //c'est pas bien
echo "bonjour";
Je veux faire un egrep dessus afin de récupérer les valeurs concernées par le contenu des includes ou require.
J'ai essayé :
Pour commencer :
egrep -o "require|include:space:*.*.php" mon.fichier.txt
Mais egrep ne me renvoie que les includes :
include_once ("/home/lib/machintruc.php
Inversement, si j'essaie :
egrep -o "include|require:space:*.*.php" mon.fichier.txt
Il ne me renvoie que les require.
Pourtant, le pipe correspond bien au motif "OU" ?
Merci :-)
6 réponses
Salut,
egrep -o "(require|include)[ [:space:]]*.*.php"Sans l'espace entre les 2 crochets ouvrants ;-))
Merci :-))
Et pour le sed, les parenthèses ne marchent pas ?
J'ai testé :
egrep -o "(require|include):space:*.*.php" /tmp/checkIncludes.sh.tmp|sed "s#['(\"]*##g"|sed "s#(require|include|require_once|include_once)##g"
Mais ca ne marche po :-|
Et pour le sed, les parenthèses ne marchent pas ?
J'ai testé :
egrep -o "(require|include):space:*.*.php" /tmp/checkIncludes.sh.tmp|sed "s#['(\"]*##g"|sed "s#(require|include|require_once|include_once)##g"
Mais ca ne marche po :-|
oui, juste récupérer les chemins et noms des fichiers concernés par les includes.
Ca donnerait un truc comme :
/home/lib/common/Mysql.class.php
/home/lib/machin.php
/home/lib/histoclient/Historisation.class.php
/home/ws/site/WS_FORFAIT/FORFAIT_CLASS/conf_forfait.php
/home/lib/machintruc.php
Ca donnerait un truc comme :
/home/lib/common/Mysql.class.php
/home/lib/machin.php
/home/lib/histoclient/Historisation.class.php
/home/ws/site/WS_FORFAIT/FORFAIT_CLASS/conf_forfait.php
/home/lib/machintruc.php
Ah j'ai compris:
sed remplace par rien tout ce qui va jusqu'à soit quote, soit double quote, soit parenthèse.
Il existe à tout hasard la possibilité (dans sed) d'utiliser le "OU" avec les parenthèses comme ci-dessus avec egrep ?
sed remplace par rien tout ce qui va jusqu'à soit quote, soit double quote, soit parenthèse.
Il existe à tout hasard la possibilité (dans sed) d'utiliser le "OU" avec les parenthèses comme ci-dessus avec egrep ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut vous deux:
Est-ca, sans le egrep ça suffit pas ?
Est-ca, sans le egrep ça suffit pas ?
sed -r -n "s/^(require|include)(_once)?[ [:space:]]*\(?[\"']([^\"']*)[\"']\)?.*/\3/p" tlep