我不确定这是否是您想要的,但假设您要搜索的行将采用以下格式:
Tests run: <integer>, Failures: <integer>, Errors: <integer>, Skipped: <integer>
以下可能对您有用:
sed -e 's/^Tests run: \([0-9]*\), Failures: \([0-9]*\), Errors: \([0-9]*\), Skipped: \([0-9]\).*$/\1,\2,\3,\4/'
在名为 test.log 的文件中给出以下输入
Tests run: 1042, Failures: 0, Errors: 0, Skipped: 0
Tests run: 12, Failures: 0, Errors: 0, Skipped: 0
Tests run: 104, Failures: 1, Errors: 3, Skipped: 4
跑步:
cat test.log | sed -e 's/^Tests run: \([0-9]*\), Failures: \([0-9]*\), Errors: \([0-9]*\), Skipped: \([0-9]\).*$/\1,\2,\3,\4/'
将产生以下输出:
1042,0,0,0
12,0,0,0
104,1,3,4
当然,您可以通过使用 sed 表达式的 /\1,\2,\3,\4/ 部分来调整最终输出。