awkを使用して列の識別子に基づいて連続行から2つの数字を減算する

awkを使用して列の識別子に基づいて連続行から2つの数字を減算する

Bashを学んでいますが、テキストファイルからデータを抽出するのに問題があります。 「awk」が使えることはわかりますが、どのように使うのかわかりません。

次のデータを2つの列にまとめました。

8.044   FIX
9.326   3 the
18.726  blank
20.742  FIX
63.624  FIX
64.89   3 house
73.656  TEST

2番目の列の識別子に基づいて、最初の列に示されている数字を減算したいと思います。 2番目の列の「3」は私の識別子で、次の行は私が減算したい番号です。したがって、次のようにする必要があります。

18.726 - 9.326
73.656 - 64.89

出力は、次の3つの列を持つテキストファイルになければなりません。

9.326 9.4 1
64.89 8.766 1

どんな助けでも大変感謝します!よろしくお願いします!

ベストアンサー1

努力する:

awk '$2=="3"{out=1;last=$1;next}out{print last,$1-last,1;out=0}' infile

おすすめ記事