如何删除除点和数字以外的所有字符

How to remove all characters but dots and numbers

我需要清除文件中除数字和点以外的所有字符。

数字格式如下:

$(24.50)

我正在使用以下代码来完成任务:

sed 's/[^0-9]*//'

它有效,但最后一个括号没有被删除。在 运行 之后我得到代码:

24.50)

我应该得到:

24.50

请帮忙

我认为您可以使用以下内容:

sed 's/[^0-9.]//g'

您的正则表达式仅匹配 [^0-9.]* 的单个实例。即开头的 $( 。为了使 sed 匹配并替换所有实例,您需要在末尾放置一个 g,如:

sed 's/[^0-9.]*//g'

g 基本上意味着 "match this regular expression anywhere in the input"。默认情况下,它只会匹配它遇到的第一个实例,然后停止。