TEST_RESULTS := ./result/* failures.txt: $(TEST_RESULTS) @rm -f $@ @for file in $^; do \ if grep -q 'This case is failed' $$file; then \ echo "Processing $$file..."; \ grep '{.*}' $$file >> failures.txt; \ fi; \ done执行这个命令的时候,提示make: execvp: /bin/sh: 参数列表过长 make: *** [Makefile:310:failures.txt] 错误 127怎么解决
时间: 2023-11-22 17:56:43 浏览: 183
minunit_c_test.rar_MinUn_minunit
这个错误通常是由于参数列表过长导致的,可以尝试分批次执行命令,或者使用 xargs 命令来处理。可以将命令改为:
```
find ./result/ -type f -name "*.txt" -exec grep -q 'This case is failed' {} \; -print0 | xargs -0 grep '{.*}' >> failures.txt
```
这个命令使用 find 命令查找所有的 ".txt" 文件,并在每个文件中查找是否包含 "This case is failed" 字符串,如果包含则将文件名通过 xargs 命令传递给第二个 grep 命令进行匹配,最终结果输出到 failures.txt 文件中。这样可以避免参数列表过长的问题。
阅读全文