【发布时间】:2014-12-31 18:33:50
【问题描述】:
下面提到的场景是我想作为詹金斯工作的一部分实现的逻辑的一部分。我正在尝试编写一个 shell 脚本。
我正在使用 grep 命令递归搜索特定字符串。 grep 返回的示例结果如下:
./src/test/java/com/ABC/st/test/pricing/Test1.java: @Tags({ "B-05256" }) ./src/test/java/com/ABC/st/test/pricing/Test1.java: @MapToVO(storyID = "B-05256: ST 价格") ./src/test/java/com/ABC/st/test/pricing/Test1.java: @Tags({ "B-05256" }) ./src/test/java/com/ABC/st/test/pricing/Test2.java: @Tags({ "B-05256" }) ./src/test/java/com/ABC/st/test/pricing/Test2.java: @MapToVO(storyID = "B-05256:本季最低价") ./src/test/java/com/ABC/st/test/pricing/Test2.java: @Tags({ "B-05256" })我想提取唯一的文件路径,例如:
/src/test/java/com/ABC/st/test/pricing/Test1.java
/src/test/java/com/ABC/st/test/pricing/Test2.java
然后在 maven 命令中使用每个唯一路径。所以:
如何从 grep 命令给出的结果集中提取唯一的文件路径?
我如何运行循环之类的东西,在每次迭代中我使用唯一的文件路径执行 mvn 命令?
【问题讨论】:
-
感谢大家的建议。我已使用此命令提取所有唯一文件路径: find . -type f -name "*.java" -exec grep -il 'stella-env-upgrade' {} \;现在我想在每个文件路径上执行一个 Maven 命令。我该怎么做?
-
在此处选择一个答案作为正确答案,如果您仍需要更多帮助,请提出后续问题。但是您的问题的答案可能会涉及使用
xargs。您也可以只使用grep,而无需将find与-r和--include标志一起使用到grep。
标签: bash