Como filtrar lista de arquivos canalizada para xargs?

2

Meu comando: git show --pretty="format:" --name-only retorna a lista de arquivos. Então eu uso o xargs para executar um script de shell nesses arquivos:

git show --pretty="format:" --name-only  | xargs -i phpmd $dir/'{}' text codesize,unusedcode,naming

No entanto, gostaria de executar o comando xargs apenas em arquivos com extensão .php . Como filtrar os arquivos indesejados?

    
por takeshin 01.09.2010 / 12:49

2 respostas

4
... | grep '\.php$' | ...
    
por 01.09.2010 / 12:51
2

Se seus nomes de arquivos podem conter espaço ou aspas, você deve usar o link do GNU Paralelo em vez de xargs, pois os xargs podem levar a surpresas desagradáveis por causa do problema do separador link :

git show --pretty="format:" --name-only  | grep '\.php$' | parallel phpmd $dir/{} text codesize,unusedcode,naming

GNU Assista ao vídeo de introdução do GNU Parallel para saber mais: link

    
por 01.09.2010 / 16:09