在带有负号的数字上使用Sed

时间:2017-02-09 07:43:37

标签: sed

我有一个csv文件,并且在许多字段中都有浮点数,其中数字末尾的负数,我希望这些数字被改变,以便在前面有负/负符号。

23.4954-,23.12-

0.23-,16.5453

2495.1-,12,134-

我希望那些人阅读

-23.4954,-23.12

-0.23,16.5453

-2495.1,-12,134

在20列和几千行中,每个文件可能有大约80个实例,但是去替换它们真的很痛苦

我希望在文件上使用sed来尽可能改变它们。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您可以使用此sed命令:

sed -E 's/([0-9.]+)-/-\1/g' file

这会在由-个字符组成的数字之前移动0-9.符号。

答案 1 :(得分:0)

使用以下方法:

sed -ri 's/([0-9.]+)-/-\1/g' filepath

-r--regexp-extended) - 允许使用扩展正则表达式而不是基本正则表达式

-i - 允许更改文件的选项