Questão Como encontrar arquivos que não contêm seu próprio nome de arquivo


Ao usar modelos para gerar arquivos, é importante incluir o nome do modelo dentro do modelo. Ao ler um arquivo gerado, ele ajuda a encontrar o modelo usado para gerá-lo.

Eu quero procurar por todos os modelos em um diretório que não contém seu próprio nome de arquivo, imprimir os que eu encontrar e sair com um código diferente de zero, se for encontrado algum.

Até agora, é isso que eu criei.

find . -name "*.xyz" -exec sh -c 'grep -L $(basename {}) {}' \;

Isso localiza e imprime os arquivos com êxito, mas sai com um código de saída 0, independentemente de serem encontrados ou não arquivos. Como posso encontrar os arquivos relevantes e sair com um código diferente de zero quando algum deles é encontrado?


1


origem




Respostas:


Talvez algo como grep .... && <do if found> || <do if not found> faz o trabalho


0





for f in *.xyz; do
    grep -q $f $f || echo "$f does not contain itself"
done

Ele lhe dará a lista de arquivos que você está procurando, embora ainda retorne um zero (porque o eco é bem-sucedido).


0