Sed 提取字符串包围的子字符串

问题描述 投票:0回答:1

我正在尝试使用 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:我已经纠正了这个例子。

regex sed
1个回答
0
投票

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/'
© www.soinside.com 2019 - 2024. All rights reserved.