echo "A number is about to show up 1 and now I want to parse 365 guys and some extra junk" | sed -E 's/.*([0-9]+) guys.*/\1/g'
上面的命令目前只输出
5
。本质上,我想在一个随机的句子中解析“男人”的数量,这个句子可能有数字(或者没有)。。我还想分析一下,在人数之前。我的echo "365 guys"
正在匹配.*
并防止它出现在36
中。如何编写sed命令(或任何其他regex/perl/awk)来完成我想要的任务? 最佳答案
在Perl中使用“frugal”量词*?
:
perl -pe 's/.*?([0-9]+) guys.*/$1/'
关于bash - 以后寻找特定字符串时,如何克服贪婪匹配的一切?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42498783/