如何为每个结果调用命令?

时间:2015-02-14 10:59:36

标签: linux bash mercurial cygwin

我想为执行的命令的每个结果调用一个命令。特别是,我想为hg diff <filename>返回的每个结果调用hg status。是否可以使用单个bash命令?

例如,hg status返回:

M project/pom.xml
M project/api/pom.xml

我想为hg diffproject/pom.xml执行project/api/pom.xml。我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

如果要查看所有已修改的文件,可以不带参数运行hg diff

更一般地说,你可以使用像

这样的东西
hg status -mn0 | xargs -0 hg diff

这里hg status -mn0打印由空字节分隔的修改文件的文件名,这是一个比换行符更好的分隔符,因为文件名可以包含换行符,并通过xargs -0 hg diff管理整个事件。它的输入为空字节,并为每个标记调用hg diff。这可以用于各种命令,而不仅仅是hg diff