1列の数字を含むファイルがあります:
1
2
4
4
10
awkを使用して各数値の差を計算したいと思います。出力は次のようになります。
1
2
0
6
どうすればできますか?
次のコードを試してください:
awk '
NR == 1{old = $1; next} # if 1st line
{print $1 - old; old = $1} # else...
' file.txt
1
2
0
6
短くするだけで...
% awk 'NR>1{print $1-p} {p=$1}' file
1
2
0
6
awk が厳密な要件ではない場合、シェル ソリューション:
set -- $(< file)
p=$1; shift; while (($# > 0)); do echo $(($1 - p)); p=$1; shift; done
ドライヤー
set -- $(< file)
while (($#>0)); do [[ -n $p ]] && echo $(($1-p)); p=$1; shift; done