管道grep输出到xargs
我正在尝试过滤一些报告命令的管道grep输出到xargs,grep,xargs,Grep,Xargs,我正在尝试过滤一些报告命令的gitls文件的输出,然后通过管道将该输出传输到xargs。我最初是在gitls文件上使用-z,效果很好,但现在我正在使用grep,我需要恢复该功能 尝试grep版本-Z对实际输出没有任何影响 git ls-files | grep -Z -e={\*.js,\*.html} grep的-Z选项似乎只适用于包含匹配内容的文件名,而不是匹配行的内容。这对我来说似乎很奇怪,但它似乎就是这样工作的 不过,您实际上不需要grep(您不需要原始版本中的*,也不需要添加任何有价
gitls文件的输出,然后通过管道将该输出传输到xargs
。我最初是在gitls文件上使用-z
,效果很好,但现在我正在使用grep,我需要恢复该功能
尝试grep版本-Z
对实际输出没有任何影响
git ls-files | grep -Z -e={\*.js,\*.html}
grep的-Z
选项似乎只适用于包含匹配内容的文件名,而不是匹配行的内容。这对我来说似乎很奇怪,但它似乎就是这样工作的
不过,您实际上不需要grep
(您不需要原始版本中的*
,也不需要添加任何有价值的内容)
git ls文件
采用与文件名匹配的模式
所以你想在这里使用这个命令
git ls-files -z -- '*.js' '*.html'
同意,我觉得它特别提到文件名很奇怪。不过,这解决了问题-我一直在查看ls文件文档,希望文件模式有一个特定的参数。尽管如此,我确实知道ls文件不能排除在repo中跟踪的文件-在我的情况下,排除列表中具体包含的文件可能更容易。我想我没有遵循排除注释<代码>ls文件
可以显示未跟踪的文件。它只能显示被忽略的文件。它还具有排除模式支持。但它仅排除未跟踪的文件,如果文件已在repo中跟踪,--exclude
参数不适用。我写这些命令是为了快速计算作者写的行数。我最初只想排除二进制文件列表,而不是特定于白名单的文件-但我认为这两种方法实际上都同样冗长,所以这不是问题。啊,没错,排除只针对未跟踪的文件