Rechercher dans un fichier texte une liste de mots

Bonjour à tous,

J’aurais une question sûrement bête et simple mais.

J’utilise ceci pour rechercher des mots d’une liste dans un fichier texte, mais ça ne passe pas, une idée ?

[b]LISTE=home/sacha/liste.txt

find /home/sacha -name ‘Fichier’ -exec grep -nH ‘$LISTE’ {} ; > /home/sacha/Résultat[/b]

Mais il n’y a rien dans “Résultat”.

Ps: La syntaxe est bonne, car remplacée par un mot cela marche.

Merci :slightly_smiling:

Les variables ne sont pas remplacées entre des apostrophes utilise des guillemets " à la place.

Salut syam,

ça ne change rien, même lorsque je met le chemin d’accès à la place de la variable…

Hmm ça m’apprendra à lire en diagonale. :mrgreen:
Cela dit, l’histoire des apostrophes vs. guillemets tient toujours…

Et comme ça :

LISTE=/home/sacha/liste.txt find /home/sacha -name 'Fichier' -exec grep -FnH -f "$LISTE" {} \; > /home/sacha/Résultat
:question:

(-F pour chercher des chaînes fixes plutôt que des regex, et -f pour prendre les motifs à partir d’un fichier, un motif par ligne)

Waah, merci beaucoup je teste ça de suite :slightly_smiling:

Une dernière question, puis-je faire tenir des morceaux de phrase dans mon fichier texte liste ?

Oui. D’où l’intérêt du -F qui te permet d’utiliser aussi des caractères genre . | ^ $ etc qui seront comparés de manière littérale.
Après, si tu veux pouvoir faire des regex faut bien sûr virer le -F voire le remplacer par un -E.

Non non :slightly_smiling: Mon fichier texte ne contiendra que du “texte”.

Si je met un truc du genre dans mon fichier texte:

debian
debian-fr.org
syam il est trop fort

Il va le rechercher dans mon fichier en prenant on compte toute ma phrase, et non pas mot par mot c’est exact ?

Exact.

Merci beaucoup :slightly_smiling: