使用 awk 编辑列中的数字

使用 awk 编辑列中的数字

假设我有一个基本文本文件,如下所示:

91 N 91 H 1.48
95 N 95 H -0.26
97 N 97 H 1.79
98 N 98 H -0.76

我想更改第 1 列和第 3 列,使整数值为 n-3,如下所示:

88 N 88 H 1.48
92 N 92 H -0.26
94 N 94 H 1.79
95 N 95 H -0.76

我意识到 awk 可能是执行此操作的最佳方法,但我不知道如何让 awk 将公式应用于列,或者让 awk 将列视为整数值。有没有一个简单的脚本可以做到这一点?另外,关于如何使用 awk 的全面指南真是太好了,因为到目前为止我所看到的只是如何做事的示例脚本。

答案1

从第 1 列和第 3 列中减去 3:

$ awk '{$1-=3; $3-=3; print;}' file
88 N 88 H 1.48
92 N 92 H -0.26
94 N 94 H 1.79
95 N 95 H -0.76

-=是通常的减法运算符。它在 awk 中的工作方式与在 C 或 python 中的工作方式相同。

相关内容