我的命令:git show --pretty="format:" --name-only
返回文件列表。然后我使用 xargs 在这些文件上运行 shell 脚本:
git show --pretty="format:" --name-only | xargs -i phpmd $dir/'{}' text codesize,unusedcode,naming
但是,我只想对带有.php
扩展名的文件运行该 xargs 命令。如何过滤不需要的文件?
答案1
... | grep '\.php$' | ...
答案2
如果你的文件名可能包含空格或引号,你应该使用 GNU Parallelhttp://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