Moteur de recherche interne -> fichier.

Résolu/Fermé
jii0n - 25 mars 2012 à 01:07
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 25 mars 2012 à 22:20
Bonjour,
Je suis sous ubuntu et je voudrai savoir si il existe un moteur de recherche interne pour pouvoir rechercher des choses directement dans les fichiers de type HTML CSS PHP ext...

Je sait que ça existe mais je n'en connait pas pourriez vous me donner vôtre avis?

Merci.


A voir également:

8 réponses

mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
25 mars 2012 à 03:32
Pas seulement sous ubuntu, sous n'importe quel linux : grep et egrep. Par exemple si tu cherche le motif <html> dans un fichier contenu dans /var/www, tu peux lancer :

grep -nri "<html>" /var/www


Bonne chance
1
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
25 mars 2012 à 13:59
Oui par exemple si tu cherches la sous-chaîne "span" dans tous les fichiers présents dans /var/www (et ses sous-dossiers) tu taperas :

grep -nri "<span>" /var/www


Essaye tu verras bien ;-) Et pour plus de détails sur la commande grep :

man grep


(q pour quitter).

Bonne chance
1
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
25 mars 2012 à 14:52
Pas de soucis, si tu as des soucis pour faire ta recherche, n'hésite pas à demander des précisions. Au besoin dis-moi quel est l'objectif de ta commande.

D'ici là bonne continuation !
1
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
25 mars 2012 à 17:49
En fait il faut construire tes commandes petit à petit et apprendre à faire des pipes | (prononcer païpe). Exemple : je veux trouver tous les fichiers finissant par ".php" dans /var/www, sauf ceux qui contiennent index dans leur nom, et parmi eux je veux trouver ceux qui contiennent au moins une fois <html> :

find /var/www

find /var/www | grep "\.php$"

find /var/www | grep "\.php$" | grep -v index

for x in $(find /var/www | grep "\.php$" | grep -v index); do grep "<html>" $x; done

for x in $(find /var/www | grep "\.php$" | grep -v index); do grep "<html>" $x; done | cut -d':' -f1

for x in $(find /var/www | grep "\.php$" | grep -v index); do grep "<html>" $x; done | cut -d':' -f1 | uniq


En fait c'est plus une logique à acquérir, j'espère que cet exemple t'aura permis de l'entrevoir.

Bonne chance
1
...pour finalement arriver à ceci :
find /var/www -iname "*.php" -a \! -iname "*index*" -exec grep -l "<html>" {} \+
parce que, évidemment, les suggestions de mamiemando ne sont que des exemples pour construire une réflexion.
parce que, si un nom de fichier contient un espace, la boucle 'for' va se répéter pour chaque "mot"; donc en général il faut éviter
for x in $(commande); do : ; done
on préférera
en bash
while read ligne; do : ; done < <(commande)
ou en sh
commande | while read ligne; do : ;done
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
25 mars 2012 à 22:20
Ça dépend, si ta commande génère beaucoup de noms de fichiers (trop pour tous les passer en arguments d'une seule commande, tu peux ne pas avoir le choix. Enfin peu importe, le propos n'était pas là, c'était plus montrer comment on construisait petit à petit une commande.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
merci beaucoup de vôtre réponse je n'ait pas bien compris peut t'on chercher tous les <span> par exemple d'un dossier avec ça?
0
Bon merci beaucoup je vais me débrouiller.
0
Je me suis fait les tutos de wiki et de ubuntu-fr.org.

j'ai vue find et grep sont intéressant mais bon il me reste les ( normes ) du terminal si je puis dire a connaître, car ça ne m'affiche rien a chaque fois il faut que je prenne l'habitude.

Mais sinon c'est bon je vous remercie. maintenant je me débrouille et encore merci pour vôtre aide.
0
Merci beaucoup pour vos réponse mais là c'est pour les autres, je vous laisse la main car moi je ne suis pas au niveaux , je me mets la page en favoris et je reviendrai quand j'aurais les neurones aligner comme il faut pour pouvoir capter un minimum la ce n'est pas le cas.

Je vous dit un grand merci pour vos réponse elles était bien complète , je vous met +1 et merci encore.

A bientôt. Cordialement.
0