0

以下のようなユーザーのリストがあり、単位をギガバイトに変換したいと思います

user1@example.com   Mbox size: 7445440 Kb
user2@example.com   Mbox size: 6622275 Kb
user3@example.com   Mbox size: 4657973 Kb
user"n"@example.com     Mbox size: 3657673 Kb

どんな助けでも大歓迎です。

4

1 に答える 1

3

計算には、bash スクリプトに埋め込まれた awk を使用するのが好きです。

以下のスクリプトを togb.sh などのファイルに保存し、実行可能にします。小数が必要な場合は、printf 形式を変更するだけです。

#!/bin/bash - 
awk '{ printf("%5.3f\n", $4 / (1024*1024)); }' $1

データをファイル data.txt に保存し、コマンドラインを使用してスクリプトを呼び出します。

./togb.sh data.txt 
7
6
4
4

リストを同じ形式で単位を変更して表示するには、わずかに変更された次のスクリプトを使用します。

#!/bin/bash - 
awk '{ printf("%s %s %s %5.3f GB\n", $1, $2, $3, $4 / (1024*1024)); }' $1

このスクリプトの出力は次のようになります。

user1@example.com Mbox size: 7.270 GB
user2@example.com Mbox size: 6.467 GB
user3@example.com Mbox size: 4.548 GB
user"n"@example.com Mbox size: 3.571 GB

ところで、awk はこれ以上のことを実行できます。実際、awk はテキスト ファイルに格納されたデータの処理に理想的です。

于 2012-12-06T17:32:48.477 に答える