问题描述
- linux shell提取字串中的字串
- 有如下字符串
sdfsdf3.45dfsadfa>2.35<
怎么提取其中的3.45和2.35?
解决方案
我自己开个头吧,我知道用grep命令
$ echo sdfsdf3.45dfsadfa>2.35< | grep -Eo '[0-9].[0-9]+'
$ 3.45
$ 2.35
还有一种是用awk但,只能提取最右边的一个,即2.35
$ echo sdfsdf3.45dfsadfa>2.35< | awk '{print gensub(/.*([0-9].[0-9]+).*/1""g)
$ 2.35
解决方案二:
可以用正则表达式哦d+(.d+)*
如果小喵的回答帮助了您,或者您希望得到小喵进一步的回答,请先采纳这个回答。问题太多,小喵愿意为采纳我的问题的哥哥们奉献更多时间。
方法是光标移动到右边,点击采纳即可。这个步骤轻而易举,绝不耽误您宝贵的时间。
采纳小喵的回答还有如下好处:
(1)得到进一步深入的回答
(2)同时增加您的经验和人品,事实证明,采纳率高的用户,专家们更愿意回答您的提问,得到答案的速度和效率也更高。
(3)毫不耗费您的积分
如果您觉得小喵的回答在所有回答中不是最好的,也请您在采纳别的大牛哥哥的答案的同时,点一个赞给小喵吧,您对小喵的鼓励是我前进的动力。
方法是点小喵回答下方的大拇哥图标哦。
在此,阔粘的小喵妹妹拜托您啦。祝您工作顺利~心想事成!
解决方案三:
正则 d+(.d+)?
解决方案四:
可以用正则表达式哦
d+(.d+)*
可恶的文本框会丢符号。
如果小喵的回答帮助了您,或者您希望得到小喵进一步的回答,请先采纳这个回答。问题太多,小喵愿意为采纳我的问题的哥哥们奉献更多时间。
方法是光标移动到右边,点击采纳即可。这个步骤轻而易举,绝不耽误您宝贵的时间。
采纳小喵的回答还有如下好处:
(1)得到进一步深入的回答
(2)同时增加您的经验和人品,事实证明,采纳率高的用户,专家们更愿意回答您的提问,得到答案的速度和效率也更高。
(3)毫不耗费您的积分
如果您觉得小喵的回答在所有回答中不是最好的,也请您在采纳别的大牛哥哥的答案的同时,点一个赞给小喵吧,您对小喵的鼓励是我前进的动力。
方法是点小喵回答下方的大拇哥图标哦。
在此,阔粘的小喵妹妹拜托您啦。祝您工作顺利~心想事成!
解决方案五:
有具体环境要求,要在shell中!!