awk - 将负数转换为正数,反之亦然

use*_*065 1 bash awk sed

我有一个结构如下的文件:

[05:58:10 08.12.1990] 125.441
[05:58:21 08.12.1990] -2.4158
...
Run Code Online (Sandbox Code Playgroud)

除了最后一个列之外的所有内容都是某种时间码(每个文件都不同),我需要将最后一个数字转换为相反的数字,如下所示:

[05:58:10 08.12.1990] -125.441
[05:58:21 08.12.1990] 2.4158
...
Run Code Online (Sandbox Code Playgroud)

我用awk尝试过,但由于我对awk的了解很差,所以我没有完全实现它.我首先尝试添加负数:

awk '{$NF=" "; NF--; printf $0; NF++; if ($NF ~ /^[0-9].*/){printf "-"; print $NF}}'
Run Code Online (Sandbox Code Playgroud)

但是因为我把最后一栏扔掉了NF--,我无法用NF ++取回它.

任何帮助都将不胜感激.谢谢.

Wil*_*ell 5

试试:

awk '{$NF *= -1; print}'
Run Code Online (Sandbox Code Playgroud)