Linux 使用awk,在所有列中与前一行相减并打印结果

Linux 使用awk,在所有列中与前一行相减并打印结果,linux,shell,awk,Linux,Shell,Awk,我需要您的指导,使用awk为linux编写一个线性命令,在所有列中递归地减去前一行中的行,然后打印差值 我的输入是 2021-02-15_16 101242 102108 17572 84538 2021-02-15_17 101235 102077 17625 84445 预期产量 2021-02-15_17 -7 -31 53 -93 我自己试过,但没有成功 cat test |awk 'NR==1{s=$3;next}{s-=$3}END{print s}' -->

我需要您的指导,使用awk为linux编写一个线性命令,在所有列中递归地减去前一行中的行,然后打印差值

我的输入是

2021-02-15_16 101242 102108 17572 84538
2021-02-15_17 101235 102077 17625 84445
预期产量

 2021-02-15_17  -7  -31 53  -93
我自己试过,但没有成功

    cat test |awk 'NR==1{s=$3;next}{s-=$3}END{print s}' --> this displays only for 1 column

cat test | awk  'NR==1 {for(i=3; i<=NF; i++){s=$i;next}{s-=$i}{print s}}'
您可以使用此awk:

awk'NR>1{对于i=2;i 1{ 对于i=2;i您可以使用此awk:

awk'NR>1{对于i=2;i 1{
如果i=2;如果i=2;i水平会更好@anubhava。它起作用了。抱歉延迟了重复。如果i=2;i水平会更好@anubhava。它起作用了。抱歉延迟了重复。如果输入文件只包含一行,输出应该是什么?如果输入文件只包含一行,输出应该是什么?