Obtenha uma lista exclusiva de arquivos em um diretório que * não * contém uma linha

0

Digamos que eu tenha um projeto com vários arquivos .js. Desejo descobrir quais arquivos não contêm essa linha:

const process = require('suman-browser-polyfills/modules/process');

Se eu fizer

grep -v "suman-browser-polyfills/modules/process" .

então, ele simplesmente registrará todas as linhas de todos os arquivos que não corresponderem. Isso não vai me dar o que eu quero de jeito nenhum.

Alguém sabe uma boa maneira de fazer isso?

    
por Alexander Mills 21.10.2017 / 19:47

1 resposta

3

Você pode usar a opção -L (ou sua opção longa, --files-without-match

Na seção Controle geral de saída de man grep :

 -L, --files-without-match
       Suppress normal output; instead print the  name  of  each  input
       file from which no output would normally have been printed.  The
       scanning will stop on the first match.

Então, por exemplo,

 grep -FL "const process = require('suman-browser-polyfills/modules/process');" *.js

(a opção -F diz ao grep para tratar o padrão de pesquisa como uma string fixa, em vez de uma expressão regular - não parece haver nenhum caractere regex-especial em seu padrão de exemplo, mas não devemos presumir esse será sempre o caso.)

    
por 21.10.2017 / 20:03

Tags