我有一个包含一列多行的文件。
我想将每一行相互减去,以检查我期望哪一行开始具有恒定差异。
i.e
line1-line2
line2-line3
line3-line4
etc.
您可以awk
这样做:
awk 'NR>1 {print prev - $1} {prev=$1}' <input_file>
这样,动作{print prev - $1}
只对第一行之后的行执行,而动作{prev=$1}
对每一行执行,但在第一个模式被评估并且是相应的动作之后,以防万一,执行。
使用 while 循环。记住最后一行:
previous=0
while read n ; do
if ((previous)) ; then
echo $((previous-n))
fi
previous=$n
done
如果您的行包含浮点数,请使用bc
或切换到某种脚本语言,例如 Perl。