删除非数值 - Unix

时间:2016-06-20 19:08:39

标签: linux unix command-line sed

我有一个文件,我只需要数字[0-9]。我有这个命令sed 's/[^0-9]*//g'删除任何不是[0-9]但我只需要删除","

我现在有了这个,但我认为它不应该起作用......

sed -ri "s/[^0-9]+\,/,/g"  

1 个答案:

答案 0 :(得分:0)

正如我在上面的评论中所说,我不明白为什么's/[^0-9].\(.*,\)/\1/g'不起作用,但也有其他选择。

我们可以使用t(测试)来做我期望g做的事情:

sed -e:a -e 's/[^0-9].\(.*,\)/\1/;ta'

或使用保留空间(矫枉过正,但有效):

sed 'h;s/.*,/,/;x;s/,.*//;s/[^0-9].//g;G;s/\n//'