我想使用一个简单的bash语法从一个范围内的grep数字。例如,从短语
range "7.2-55.0"
我想拯救start=7.2和end=55.0。
因为我知道一些perl regex (pcre),所以我尝试了:
echo 'range "7.2-55.0"' | pcregrep -o '^range \"(\S+)\"'
echo 'range "7.2-55.0"' | pcregrep -o '^range \"([0-9.-]+)\"'这不起作用。输出是整条线。那我的错是什么?是否可以使用pcregrep保存两个匹配组?
在搜索我找到的网页时,例如pcregrep -o1,但我似乎有另一个版本的工具,因为我只允许使用-o选项(GNUBash3.2)。
发布于 2014-04-02 09:02:37
你可以用awk做这样的事
start=$(echo 'range "7.2-55.0"' | awk -F'["-]' '/range/ {print $2}')
end=$(echo 'range "7.2-55.0"' | awk -F'["-]' '/range/ {print $3}')
echo $start
7.2
echo $end
55.0https://stackoverflow.com/questions/22806299
复制相似问题