我正在尝试使用 sed 从字符串中提取子字符串,其中子字符串被 包围
这是一个示例字符串:
Test: 1000 calls, 15307 milliseconds, 11 minimum, 37 maximum, 15 average, top five [37,35,34,32,31]
我想提取“平均”值(在上面的示例中,即“15”。
我已经尝试过:
echo "Test: 1000 calls, 15307 milliseconds, 11 minimum, 37 maximum, 15 average, top five [37,35,34,32,31]" | sed 's/.*\(maximum,.*\)average/\1/'
但我得到的输出是:
maximum, 15 , top five [37,35,34,32,31]
如何才能不包含“15”前面的“最大值”,也不包含“15”之后的字符串部分?
谢谢!
吉姆
编辑:抱歉,我弄乱了并使用了错误的示例 - 我会稍微纠正它:(!
编辑2:我已经纠正了这个例子。
sed
不是提取子字符串的最佳工具,但在这种情况下,可以使用它:
echo "Test: 1000 calls, 15307 milliseconds, 11 minimum, 37 maximum, 15 average, top five [37,35,34,32,31]" \
| sed 's/.* \([0-9]*\) average,.*/\1/'