我有一个像这样的字符串
"112344 1234234 guest 25 % allocation used"
我想使用sed从这个字符串中提取25
。
在给定的行“112344 1234234客人25%分配使用”中,我只对“25%”感兴趣。第一个字段也可以是空的,如下所示:
“使用了25%的分配”
但“使用的%分配”是固定字符串。 因此正则表达式应该基于这种固定模式。
任何人都可以帮助我。
答案 0 :(得分:2)
基本上,你想要的是右边第四个字段。为此,我使用awk
:
awk '{ print $(NF-3) }'
如果绝对必须在sed
,请尝试:
sed -e 's/^/ /' -e 's/\(^|.* \)\(.*\) % allocation used/\1/'
答案 1 :(得分:1)
如果您确定'%'前面的数字是2位数,那么您可以使用以下
[jaypal~/Temp]$ cat text5
112344 1234234 guest 25 % allocation used
25 % allocation used
2344 guest 15 % allocation used
[jaypal~/Temp]$ sed 's/.*\(.. %\).*/\1/' text5
25 %
25 %
15 %
答案 2 :(得分:0)
试试这个
cut -d% -f1 | awk '{ print $(NF) }'