Eu tenho tentado elaborar a sintaxe para este comando:
grep ! error_log | find /home/foo/public_html/ -mmin -60
OU:
grep '[^error_log]' | find /home/baumerf/public_html/ -mmin -60
Eu preciso ver todos os arquivos que foram modificados, exceto aqueles nomeados error_log
.
Eu li sobre isso aqui , mas só encontrei um not
padrão de regex.
Respostas:
grep -v
é seu amigo:Verifique também o relacionado
-L
(o complemento de-l
).fonte
-e
opção pode ser usada:grep -v -e 'negphrase1' -e 'negphrase2'
grep -v 'negphrase1|negphrase2|negphrase3'
-E
works, iegrep -vE 'negphrase1|negphrase2|negphrase3'
grep "" /dev/null * | grep foo | grep -v bar | cut -d: -f1 | sort -u
( por isso o primeiro grep? , Há sempre uma maneira :))Você também pode usar
awk
para esses propósitos, pois permite executar verificações mais complexas de uma maneira mais clara:Linhas que não contêm
foo
:Linhas que não contêm
foo
nembar
:Linhas que não contêm
foo
nembar
que contêmfoo2
oubar2
:E assim por diante.
fonte
No seu caso, você provavelmente não deseja usar grep, mas adicione uma cláusula negativa ao comando find, por exemplo
Se você deseja incluir caracteres curinga no nome, precisará escapar deles, por exemplo, para excluir arquivos com o sufixo .log:
fonte