J'ai essayé de trouver la syntaxe de cette commande:
grep ! error_log | find /home/foo/public_html/ -mmin -60
OU:
grep '[^error_log]' | find /home/baumerf/public_html/ -mmin -60
J'ai besoin de voir tous les fichiers qui ont été modifiés à l'exception de ceux nommés error_log
.
J'ai lu à ce sujet ici , mais je n'ai trouvé qu'un not
seul motif -regex.
Réponses:
grep -v
est votre ami:Consultez également les connexes
-L
(le complément de-l
).la source
-e
option peut être utilisée:grep -v -e 'negphrase1' -e 'negphrase2'
grep -v 'negphrase1|negphrase2|negphrase3'
-E
œuvres, c'estgrep -vE 'negphrase1|negphrase2|negphrase3'
grep "" /dev/null * | grep foo | grep -v bar | cut -d: -f1 | sort -u
( pourquoi le premier grep?, Il y a toujours un moyen :))Vous pouvez également utiliser
awk
à ces fins, car il vous permet d'effectuer des vérifications plus complexes d'une manière plus claire:Lignes ne contenant pas
foo
:Lignes ne contenant ni
foo
nibar
:Les lignes ne contenant ni
foo
nibar
qui contiennent soitfoo2
oubar2
:Etc.
la source
Dans votre cas, vous ne voulez probablement pas utiliser grep, mais ajoutez à la place une clause négative à la commande find, par exemple
Si vous souhaitez inclure des caractères génériques dans le nom, vous devrez les échapper, par exemple pour exclure les fichiers avec le suffixe .log:
la source