如何为每个结果调用一个命令?
How to invoke a command for each result?
我想为执行命令的每个结果调用一个命令。特别是,我想为 hg status
返回的每个结果调用 hg diff <filename>
。是否可以使用单个 bash
命令来完成?
例如,hg status
返回:
M project/pom.xml
M project/api/pom.xml
我想对 project/pom.xml
和 project/api/pom.xml
执行 hg diff
。我该怎么做?
如果您想查看所有修改过的文件,您可以 运行 hg diff
不带参数。
更一般地说,您可以使用类似
的东西
hg status -mn0 | xargs -0 hg diff
此处 hg status -mn0
打印由空字节分隔的修改文件的文件名,这是比换行符更好的分隔符,因为文件名可以包含换行符,并通过管道传递整个内容 xargs -0 hg diff
,它在空字节处拆分其输入并为每个标记调用 hg diff
。这可以用于各种命令,而不仅仅是 hg diff
.
我想为执行命令的每个结果调用一个命令。特别是,我想为 hg status
返回的每个结果调用 hg diff <filename>
。是否可以使用单个 bash
命令来完成?
例如,hg status
返回:
M project/pom.xml
M project/api/pom.xml
我想对 project/pom.xml
和 project/api/pom.xml
执行 hg diff
。我该怎么做?
如果您想查看所有修改过的文件,您可以 运行 hg diff
不带参数。
更一般地说,您可以使用类似
的东西hg status -mn0 | xargs -0 hg diff
此处 hg status -mn0
打印由空字节分隔的修改文件的文件名,这是比换行符更好的分隔符,因为文件名可以包含换行符,并通过管道传递整个内容 xargs -0 hg diff
,它在空字节处拆分其输入并为每个标记调用 hg diff
。这可以用于各种命令,而不仅仅是 hg diff
.