awkを使用して列の数値を編集する

awkを使用して列の数値を編集する

次の基本的なテキストファイルがあるとしましょう。

91 N 91 H 1.48
95 N 95 H -0.26
97 N 97 H 1.79
98 N 98 H -0.76

次のように整数値がn-3になるように列1と3を変更したいと思います。

88 N 88 H 1.48
92 N 92 H -0.26
94 N 94 H 1.79
95 N 95 H -0.76

私はawkがおそらくこれを行う最善の方法であることを知っていますが、awkを使用して列に数式を適用する方法、またはawkを使用して列を整数値として処理する方法がわかりません。これを行うための簡単なスクリプトはありますか?また、これまで見たのは作業の実行方法のサンプルスクリプトだけなので、awkの使い方に関する包括的なガイドがあれば良いでしょう。

答え1

列1と3から3を減算します。

$ awk '{$1-=3; $3-=3; print;}' file
88 N 88 H 1.48
92 N 92 H -0.26
94 N 94 H 1.79
95 N 95 H -0.76

-=一般的なマイナス演算子です。 CやPythonと同様に、awkでも同じように動作します。

関連情報