Hen*_*olm 13
问题是.in .*将匹配数字和非数字,并且只要它可以保持匹配 - 只要有一个数字可以匹配的未消耗的数字[0-9].
而不是提取数字,只需删除非数字:
echo hgdfjg678gfdg kjg45nn | sed 's/[^0-9]//g'
Run Code Online (Sandbox Code Playgroud)
甚至
echo hgdfjg678gfdg kjg45nn | tr -d -c 0-9
Run Code Online (Sandbox Code Playgroud)
你可以使用grep和-o选项:
$ echo hgdfjg678gfdg kjg45nn | grep -E -o "[0-9]+"
678
45
Run Code Online (Sandbox Code Playgroud)