Bashで数字を数えて丸めます。

Bashで数字を数えて丸めます。

ちょっとした変化で苦労しています。 最初のフィールドを取得して計算する方法そしてシェルで浮動小数点数を丸める方法は?

(列間のスペース)などのファイルがあります。

1533 C_P.doc
691 C_M.doc
905 G_S.doc
945 J_Z.doc
1549 J_M.doc
1701 L_B.doc

数値列を取得し、各数値を65で除算し(丸め)、その数値を含む新しい列を追加したい(可能な限り左側)。つまり

24 1533 C_P.doc
11 691 C_M.doc
14 905 G_S.doc
15 945 J_Z.doc
24 1549 J_M.doc
27 1701 L_B.doc

bashスクリプトでこれを実行したいと思います。可能ですか?必要に応じて中間ポストを削除できます(簡単に削除できる場合)。

[Ubuntu 14.04]

ベストアンサー1

awk中間列を渡して維持します。

awk '{printf("%.f ", ($1/65)+0.5)}1' infile > outfile
24 1533 C_P.doc
11 691 C_M.doc
14 905 G_S.doc
15 945 J_Z.doc
24 1549 J_M.doc
27 1701 L_B.doc

合格awkと不合格のニューラルポール:

awk '{printf("%.f", ($1/65)+0.5); $1=""}1' infile > outfile
24 C_P.doc
11 C_M.doc
14 G_S.doc
15 J_Z.doc
24 J_M.doc
27 L_B.doc

は関数を置き換える+0.5ために使用され、次の数字に丸められます。ceil()最後に、1基本印刷を有効にします。

おすすめ記事