vine-users ML アーカイブ



[vine-users:053995] Re: quota の出力に関して

  • From: KITA Toshihiro <t-kita@xxxxxxxxxxxxxxxxxxx>
  • Subject: [vine-users:053995] Re: quota の出力に関して
  • Date: Sat, 05 Oct 2002 13:14:25 +0900
喜多です。

zan10882> Disk quotas for group hogehoge (gid 501): 
zan10882>      Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
zan10882>      /dev/hda1010175088 3000000030000000            1682       0       0        
zan10882> 
zan10882> となり、パーティション名からブロックサイズ、
zan10882> ソフトリミットからハードリミットまでが、それぞれくっついて
zan10882> 表示されてしまいました。
zan10882> 
zan10882> awkで現在の使用量とリミットを適切に処理したいので、
zan10882> 各数値の間にスペースを入れて出力したいのですが、
zan10882> どうすれば良いのでしょうか。
zan10882> 
zan10882> /dev/hda10 10175088 30000000 30000000
zan10882> 
zan10882> こんな風になってほしいのです。
zan10882> 数字が8桁になるまではスペースが入るのですが・・・

本来,quota のソースをいじるべきなのでしょうが,
awk スクリプト側での work around としては,
もし,数字がくっつくときは必ず8桁であるなら,

{
for(k=1; k<=NF; k++){
    len= length($k);
    if (len>10){  $k= substr($k,1,len-8)  " "  substr($k,len-7);  }
}
print $1, $2, $3, $4;
}

のように空白を挿入してやればいいです。
# awk は, $0, $1, $2, ... が変更されるとスプリットし直すので。



上記スクリプトに

Filesystem  blocks   quota   limit   grace   files   quota   limit
grace
  /dev/hda1010175088 3000000030000000            1682       0       0       
/dev/hda10 10175088 30000000 30000000

のようなデータを読み込ませると

Filesystem blocks quota limit
/dev/hda10 10175088 30000000 30000000 1682 0
/dev/hda10 10175088 30000000 30000000

と出力されます。
----------
               〒860-8555(専用番号) 熊本大学 総合情報基盤センター 喜多敏博
                t-kita@xxxxxxxxxxxxxxxxxxx
                Web page : http://www.eecs.kumamoto-u.ac.jp/~t-kita/
                   or      http://www.t-kita.net/