Je cherche à compter le nombre de fichier de sessions php contenant une chaine 'candidat' et je sèche sur ce problème.
J'ai trouvé.
find . -type f -exec grep -c candidat {} ; | awk '{ total += $1} END {print total; }' [...]
Ah, tu cherchais le nombre lignes contenant "candidat"
find . -type f -exec cat {} + | grep -c candidat
ca evitera de lancer un grep par fichier.
Si tu cherchais le nombre d'occurrences de "candidat", tu pourrais faire:
find . -type f -exec cat {} + | awk ' {n += gsub(/candidat/, "")} END {print n+0}'
(Si un fichier se termine par "can" (sans saut de ligne) et le suivant commence par "didat" par exemple, tu peux avoir un resultat erronné)
-- Stéphane
Stephane Dupille
Bonjour,
Salut !
Je cherche à compter le nombre de fichier de sessions php contenant une chaine 'candidat' et je sèche sur ce problème. find .//. -name '*.php' -type f -exec grep -Fl candidat {} + |
grep -c //
Pourquoi les slashs dans le find dans './/.' ?
Et je crois que mon find (FreeBSD 4) ne comprends pas la syntaxe de d'exec avec le +.
-- Salut,Je m'appele sed.je suis etudiant en communication, j'ai lu votre message.je viens vous dire un petiit bonjour,et vous laisser mon adresse mél: vous pouvez me repondre maintenant si vous étez conecter. -+-<http://www.le-gnu.net> - La com', elle ne passera pas par moi -+-
Bonjour,
Salut !
Je cherche à compter le nombre de fichier de sessions php contenant une
chaine 'candidat' et je sèche sur ce problème.
find .//. -name '*.php' -type f -exec grep -Fl candidat {} + |
grep -c //
Pourquoi les slashs dans le find dans './/.' ?
Et je crois que mon find (FreeBSD 4) ne comprends pas la syntaxe de
d'exec avec le +.
--
Salut,Je m'appele sed.je suis etudiant en communication, j'ai lu votre
message.je viens vous dire un petiit bonjour,et vous laisser mon adresse
mél: vous pouvez me repondre maintenant si vous étez conecter.
-+-<http://www.le-gnu.net> - La com', elle ne passera pas par moi -+-
Je cherche à compter le nombre de fichier de sessions php contenant une chaine 'candidat' et je sèche sur ce problème. find .//. -name '*.php' -type f -exec grep -Fl candidat {} + |
grep -c //
Pourquoi les slashs dans le find dans './/.' ?
Et je crois que mon find (FreeBSD 4) ne comprends pas la syntaxe de d'exec avec le +.
-- Salut,Je m'appele sed.je suis etudiant en communication, j'ai lu votre message.je viens vous dire un petiit bonjour,et vous laisser mon adresse mél: vous pouvez me repondre maintenant si vous étez conecter. -+-<http://www.le-gnu.net> - La com', elle ne passera pas par moi -+-
Stephane Chazelas
On Wed, 01 Mar 2006 10:03:24 +0100, Stephane Dupille wrote:
Bonjour,
Salut !
Je cherche à compter le nombre de fichier de sessions php contenant une chaine 'candidat' et je sèche sur ce problème. find .//. -name '*.php' -type f -exec grep -Fl candidat {} + |
grep -c //
Pourquoi les slashs dans le find dans './/.' ?
Je ne veux compter les fichiers qu'une fois, donc ne compter que ce que je suis sur de trouver une fois par fichier. Si je compte les lignes, je vais compter plusieurs fois les fichiers qui contiennent des sauts de ligne.
Et je crois que mon find (FreeBSD 4) ne comprends pas la syntaxe de d'exec avec le +.
Un find POSIX ou Unix doit l'avoir. J'imagine que la derniere version de FreeBSD doit l'avoir. Je crois que la Single Unix Specification version 2 ne l'avait pas, SUSv3 l'a. C'est peut-etre dans POSIX depuis des decennies, mais comme il n'etait pas publique avant qu'il merge avec SUS, qui sait...
La, non seulement, ca ne marche pas avec les fichiers qui contiennent des newlines, mais aussi avec ceux qui contiennent des espaces, tabulations, simple quotes, doubles quotes et backslashs. xargs attend un format bien particulier d'input, le format d'output de find n'est pas compatible (a moins d'utiliser -print0/-0 mais ce n'est pas standard (GNU et BSD only)).
-- Stephane
On Wed, 01 Mar 2006 10:03:24 +0100, Stephane Dupille wrote:
Bonjour,
Salut !
Je cherche à compter le nombre de fichier de sessions php contenant une
chaine 'candidat' et je sèche sur ce problème.
find .//. -name '*.php' -type f -exec grep -Fl candidat {} + |
grep -c //
Pourquoi les slashs dans le find dans './/.' ?
Je ne veux compter les fichiers qu'une fois, donc ne compter que
ce que je suis sur de trouver une fois par fichier. Si je compte
les lignes, je vais compter plusieurs fois les fichiers qui
contiennent des sauts de ligne.
Et je crois que mon find (FreeBSD 4) ne comprends pas la syntaxe de
d'exec avec le +.
Un find POSIX ou Unix doit l'avoir. J'imagine que la derniere
version de FreeBSD doit l'avoir. Je crois que la Single Unix
Specification version 2 ne l'avait pas, SUSv3 l'a. C'est
peut-etre dans POSIX depuis des decennies, mais comme il n'etait
pas publique avant qu'il merge avec SUS, qui sait...
La, non seulement, ca ne marche pas avec les fichiers qui
contiennent des newlines, mais aussi avec ceux qui contiennent
des espaces, tabulations, simple quotes, doubles quotes et
backslashs. xargs attend un format bien particulier d'input, le
format d'output de find n'est pas compatible (a moins d'utiliser
-print0/-0 mais ce n'est pas standard (GNU et BSD only)).
On Wed, 01 Mar 2006 10:03:24 +0100, Stephane Dupille wrote:
Bonjour,
Salut !
Je cherche à compter le nombre de fichier de sessions php contenant une chaine 'candidat' et je sèche sur ce problème. find .//. -name '*.php' -type f -exec grep -Fl candidat {} + |
grep -c //
Pourquoi les slashs dans le find dans './/.' ?
Je ne veux compter les fichiers qu'une fois, donc ne compter que ce que je suis sur de trouver une fois par fichier. Si je compte les lignes, je vais compter plusieurs fois les fichiers qui contiennent des sauts de ligne.
Et je crois que mon find (FreeBSD 4) ne comprends pas la syntaxe de d'exec avec le +.
Un find POSIX ou Unix doit l'avoir. J'imagine que la derniere version de FreeBSD doit l'avoir. Je crois que la Single Unix Specification version 2 ne l'avait pas, SUSv3 l'a. C'est peut-etre dans POSIX depuis des decennies, mais comme il n'etait pas publique avant qu'il merge avec SUS, qui sait...
La, non seulement, ca ne marche pas avec les fichiers qui contiennent des newlines, mais aussi avec ceux qui contiennent des espaces, tabulations, simple quotes, doubles quotes et backslashs. xargs attend un format bien particulier d'input, le format d'output de find n'est pas compatible (a moins d'utiliser -print0/-0 mais ce n'est pas standard (GNU et BSD only)).