Моя команда: git show --pretty="format:" --name-only
возвращает список файлов. Затем я использую xargs для запуска сценария оболочки для этих файлов:
git show --pretty="format:" --name-only | xargs -i phpmd $dir/'{}' text codesize,unusedcode,naming
Однако я бы хотел запустить эту команду xargs только для файлов с .php
расширение. Как отфильтровать ненужные файлы?
... | grep '\.php$' | ...
Если ваши имена файлов могут содержать пробелы или кавычки, вам следует использовать GNU Parallel http://www.gnu.org/software/parallel/ вместо xargs, поскольку xargs может привести к неприятным сюрпризам из-за проблемы с разделителем http://en.wikipedia.org/wiki/Xargs#The_separator_problem:
git show --pretty="format:" --name-only | grep '\.php$' | parallel phpmd $dir/{} text codesize,unusedcode,naming
GNU Посмотрите вводное видео о GNU Parallel, чтобы узнать больше: http://www.youtube.com/watch?v=OpaiGYxkSuQ