Negatieve overeenkomst met grep (overeenkomst met regels die geen foo bevatten)
Ik heb geprobeerd de syntaxis voor dit commando te achterhalen:
grep ! error_log | find /home/foo/public_html/ -mmin -60
of
grep '[^error_log]' | find /home/baumerf/public_html/ -mmin -60
Ik moet alle bestanden zien die gewijzigd zijn, behalve die met de naam error_log
.
Ik heb er hier over gelezen, maar heb maar één niet
-regex patroon gevonden.
904
3
grep -v
is je vriend:Bekijk ook de gerelateerde
-L
(het complement van-l
).Je kunt
awk
ook voor deze doeleinden gebruiken, omdat het je in staat stelt om complexere controles op een duidelijker manier uit te voeren:Regels die
foo
niet bevatten:Regels die noch
foo
nochbar
bevatten:Regels die noch
foo
nochbar
bevatten en diefoo2
ofbar2
bevatten:En zo verder.
In uw geval wilt u vermoedelijk grep niet gebruiken, maar in plaats daarvan een negatieve clausule toevoegen aan het commando find, bijv.
Als u jokertekens in de naam wilt opnemen, zult u'ze moeten escapen, bijv. om bestanden met suffix .log uit te sluiten: