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

时间:2015-12-11 17:52:26

标签: bash formatting numbers

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

数字的格式如下:

$(24.50)

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

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

它可以工作,但最后一个括号不会被删除。运行代码后我得到:

24.50)

我应该得到:

24.50

请帮忙

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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

g基本上意味着"在输入"中匹配此正则表达式 where 。默认情况下,它只会在遇到的第一个实例上匹配,然后停止。