我的命令: git show --pretty="format:" --name-only返回文件列表。 然后我使用xargs在这些文件上运行一个shell脚本:
git show --pretty="format:" --name-only | xargs -i phpmd $dir/'{}' text codesize,unusedcode,naming
但是,我只想在扩展名为.php文件上运行这个xargs命令。 如何过滤不需要的文件?
... | 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的介绍video了解更多信息: http : //www.youtube.com/watch?v = OpaiGYxkSuQ