Pesquisa negativa no pipeline find / grep não removendo nenhum registro

0

Estou lutando um pouco com o comando bash find.

O problema é uma exigência atrasada que quer que eu retire todos os registros dos arquivos * .app contendo * .appstrng "

Este é o meu canal de pesquisa original que está funcionando perfeitamente sem a tentativa negativa de despir os registros:

find . -type f -iname "*.app" -exec grep -we selected_apps -e app_name --color=auto --with-filename {}         \; > LOG.txt

Agora, aqui estão algumas das tentativas que fiz para adicionar stripping de .appstring antes de criar LOG.txt

1) Com grep -v

find . -type f -iname "*.app" -exec grep -we selected_apps -e app_name -ev "*.appstring" --color=auto --with-filename {} \; > LOG.txt

2) Com o awk

find . -type f -iname "*.app" -exec grep -we selected_apps --color=auto --with-filename {} \; | awk '!/*.appstring/' > LOG.txt

Não tenho certeza se find / grep ou find / awk funcionarão dessa maneira ... todos os comentários são bem-vindos! Obrigado !!

    
por SSDdude 02.08.2018 / 17:11

1 resposta

0

Você pode usar o comando original e remover alguns resultados com um comando adicional:

cat LOG.txt | while read FILE; do
    if ! grep -q "*.appstring" "$FILE"; then
        echo $FILE >> LOG-filtered.txt
    fi
done
    
por 02.08.2018 / 17:55

Tags