我想在下面的字符串匹配12345:adf99fgl12,345qsdfm34如何將「逗號附近的數字」與sed匹配?
在一般的情況下,我有一個數字(價格)用逗號,在包含數字,字母和其他符號的字符串,但沒有其他逗號。我想告訴sed提取價格,也就是說,逗號前後的所有數字和逗號。
我發現的最接近表達:
回波adf99fgl12,345qsdfm34 | SED 「S/[^ 0-9] * \([0-9] +,[0-9] * \)[^ 0-9] */\ 1 /」
謝謝
我想在下面的字符串匹配12345:adf99fgl12,345qsdfm34如何將「逗號附近的數字」與sed匹配?
在一般的情況下,我有一個數字(價格)用逗號,在包含數字,字母和其他符號的字符串,但沒有其他逗號。我想告訴sed提取價格,也就是說,逗號前後的所有數字和逗號。
我發現的最接近表達:
回波adf99fgl12,345qsdfm34 | SED 「S/[^ 0-9] * \([0-9] +,[0-9] * \)[^ 0-9] */\ 1 /」
謝謝
如何使用grep
而不是sed
?
echo adf99fgl12,345qsdfm34 | grep -Eo '[0-9]+,[0-9]*'
Bash 3.2+
$ var="adf99fgl12,345qsdfm34"
$ [[ $var =~ '(.[^0-9]*)([0-9]*,[0-9]*)(.[^[0-9]*)' ]]
$ echo ${BASH_REMATCH[2]}
12,345
使用grep來查找文本,你通常是更好:
echo uaiuiae12,3456udeaitentu676 | grep -o -E '([[:digit:]]+,[[:digit:]]+)'
您的解決方案有什麼問題? – Beta 2010-07-27 17:31:17
它根本不起作用(嘗試它) – user368507 2010-07-27 20:55:34