将列中相邻值之间的差异打印到新列

Joh*_*Tam 0 awk

我有一个文件

A 1
A 2
A 4
A 6
Run Code Online (Sandbox Code Playgroud)

我想将第 2 列中相邻值(下方)之间的差异打印到新的第 3 列,以得到这个

A 1
A 2 1
A 4 2
A 6 2
Run Code Online (Sandbox Code Playgroud)

在 SO 上发现了类似的内容,但未能将其打印为新列。

awk 'NR>1{print $1-p} {p=$1}' file
Run Code Online (Sandbox Code Playgroud)

Sun*_*eep 5

修改有问题的给定代码

$ awk 'NR>1{$3=$2-p} {p=$2} 1' file 
A 1
A 2 1
A 4 2
A 6 2
Run Code Online (Sandbox Code Playgroud)
  • 字段从 索引1,因此$2用于第二列
    • $0 包含整个输入记录
  • 修改后需要打印记录。默认操作是打印$0条件为真时的内容。1在这种情况下惯用的