![使用 awk 编辑列中的数字](https://linux22.com/image/70192/%E4%BD%BF%E7%94%A8%20awk%20%E7%BC%96%E8%BE%91%E5%88%97%E4%B8%AD%E7%9A%84%E6%95%B0%E5%AD%97.png)
假设我有一个基本文本文件,如下所示:
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 中的工作方式相同。