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
syam
Février 21, 2016, 3:53
2
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…
syam
Février 21, 2016, 3:53
4
Hmm ça m’apprendra à lire en diagonale.
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
(-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
Une dernière question, puis-je faire tenir des morceaux de phrase dans mon fichier texte liste ?
syam
Février 21, 2016, 3:53
6
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 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 ?