如何使用sed获取特定字符和空格之间的字符串?

时间:2016-10-19 20:19:36

标签: sed

在下面的字符串中,我想要-和空格

之间的数字
RXOTG-196 HK6500A 0

我想要的结果是196
我怎么能用sed呢? 数字位数不一定是3,有时是2位或1位数。

3 个答案:

答案 0 :(得分:1)

这可能适合你(GNU sed):

sed -r 's/-([0-9]+) /\n\1\n/;/^[0-9]+\n/P;D' file

用换行符围绕所需的字符串,只打印匹配数字后跟换行符的行。这将在不同的行上打印所有匹配。

答案 1 :(得分:0)

$ echo 'RXOTG-196 HK6500A 0' | sed -E 's/.*[A-Z]-([0-9]+).*/\1/' 
196

答案 2 :(得分:0)

这种模式适用于我的sed:

{{1}}