我希望在以下字符串中匹配12,345:adf99fgl12,345qsdfm34
一般情况下,我有一个带逗号的数字(价格),包含数字,字母和其他符号的字符串,但没有其他逗号。我想告诉sed提取价格,也就是说,逗号之前和之后的所有数字以及逗号。
我发现的最接近的表达是:
echo adf99fgl12,345qsdfm34 | sed“s / [^ 0-9] * \([0-9] +,[0-9] * \)[^ 0-9] * / \ 1 /”
谢谢
答案 0 :(得分:1)
如何使用grep
代替sed
?
echo adf99fgl12,345qsdfm34 | grep -Eo '[0-9]+,[0-9]*'
答案 1 :(得分:1)
要查找文本,通常最好使用grep:
echo uaiuiae12,3456udeaitentu676 | grep -o -E '([[:digit:]]+,[[:digit:]]+)'
答案 2 :(得分:0)
Bash 3.2 +
$ var="adf99fgl12,345qsdfm34"
$ [[ $var =~ '(.[^0-9]*)([0-9]*,[0-9]*)(.[^[0-9]*)' ]]
$ echo ${BASH_REMATCH[2]}
12,345