打印文件并减去两行

打印文件并减去两行

我想打印并从文件中每两行中减去

toto 30
tata 20
toto 12
tata 6
toto 22
tata 8

输出 :

diff : 10
diff : 6
diff : 14

我找到一个脚本:

FILENAME=$1

while read line
do
  if [ -n "$prevLine" ]
  then
    curLine=$line
    echo $(($curLine - $prevLine))
  fi
  prevLine=($line)
done < $FILENAME

我想读取 line+1 以使范围为 2

答案1

有鞋底吗awk

<file awk '{if ($1=="toto") old=$2; else if ($1=="tata") print "diff : " old-$2}'

file包含您的数据的文件在哪里。对于每个“tata”行,该命令将打印与前一个“toto”行的差异。

或者如果是关于奇数和偶数线(不管“toto”/“tata”),那么这样:

<file awk '{if (NR%2==1) old=$2; else print "diff : " old-$2}'

相关内容