【发布时间】:2016-04-28 14:43:49
【问题描述】:
是否可以查找'string1',如果它为真,然后使用grep 查找'string2'。 这是我的情况。我有很多 txt 报告文件,我需要根据测试路径“测试路径:路径/到/测试”搜索“失败” 示例报告文件:
Test path: path/to_tests/t1
Host name: testpc1
AMEND_1/Sec3/E30012.c, ; PASS; ; ; ; ;
AMEND_1/Sec3/E30013.c, ; FAIL; ; ; ; ;
AMEND_1/Sec3/E30014.c, ; PASS; ; ; ; ;
AMEND_1/Sec3/E30015.c, ; FAIL; ; ; ; ;
我正在尝试执行以下命令,但它只打印 FAIL 行而不是测试路径,我也想删除 ';'在行中。
find . -name "*concat.txt" | xargs grep -E 'Test path: path/to_tests/t1' grep -e 'FAIL'
请指导我如何使用一行命令来实现这一点。
希望输出:
Test path: path/to_tests/t1 AMEND_1/Sec3/E30013.c FAIL
Test path: path/to_tests/t1 AMEND_1/Sec3/E30015.c FAIL
【问题讨论】:
-
请添加您想要的输出。
-
在单行命令中?为什么这很重要?它有多重要?
-
我们有处理报告比较和excel生成的大shell脚本。所以想在开始比较之前添加一行命令。所以想要将失败重定向到文件并发送给团队,团队成员只查找失败的测试会很有用。
-
好的,但到目前为止,我还没有听到任何理由说明为什么它需要是单个命令...
-
我不想弄乱 shell 脚本,因为我不是 shell 脚本专家。所以计划有一个行命令,这样我就可以在它开始生成 excel 之前将它放在 shell 脚本中。