traduccion - ls grep




Coincidencia negativa utilizando grep(líneas de coincidencia que no contienen foo) (2)

He estado tratando de resolver la sintaxis de este comando:

grep ! error_log | find /home/foo/public_html/ -mmin -60

o

grep '[^error_log]' | find /home/baumerf/public_html/ -mmin -60

Necesito ver todos los archivos que se han modificado, excepto los llamados error_log .

He leído sobre esto aquí , pero solo encontré un patrón not regex.


En su caso, presumiblemente no desea utilizar grep, sino que agregue una cláusula negativa al comando de búsqueda, por ejemplo

find /home/baumerf/public_html/ -mmin -60 -not -name error_log

Si desea incluir caracteres comodín en el nombre, deberá evitarlos, por ejemplo, para excluir archivos con el sufijo .log:

find /home/baumerf/public_html/ -mmin -60 -not -name \*.log

También puede usar awk para estos fines, ya que le permite realizar verificaciones más complejas de una manera más clara:

Líneas que no contienen foo :

awk '!/foo/'

Líneas que no contienen ni foo ni bar :

awk '!/foo/ && !/bar/'

Líneas que no contienen ni foo ni bar pero que contienen foo2 o bar2 :

awk '!/foo/ && !/bar/ && (/foo2/ || /bar2/)'

Y así.