[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:33472] Re: lsbytesum による表示について



こじまさん、吉澤さん こんにちは。
コメント、アドバイスいただきありがとうございます。

On Wed, 4 Nov 2020 00:01:49 +0900
Takahiro Yoshizawa-san <kuro@xxxxxxxxxxxx> wrote:
> -----------------------------
> #!/bin/bash
> #     lsbytesum - sum the number of bytes in a directory listing
> TotalBytes=0
> for Bytes in $(ls -l | grep "^-" | awk '{ print $5 }' | tr -d ',')
> do
>     let TotalBytes=$TotalBytes+$Bytes
> done
> TotalMeg=$(echo -e "scale=3 \n$TotalBytes/1048576 \nquit" | bc)
> echo -n "$TotalMeg"
> -----------------------------
> 
> trコマンドで','を取り除いて見たのですが、
> 動いているのかな?
>
結果、うまく動きました。シェル内で引き渡される数値から、trコマンドで意図的にカンマを
取り除いたということですね。勉強になります。

Kojima-san wrote
> このカンマ(,)は、日本語表記時の桁取りなんで、日本語ロケールが原因っぽいですね。
> 
> とりあえず、先頭でLANGを"C"にしてやれば何とかなりそう。
> 
> --- lsbytesum	2020-11-03 23:38:51.461321540 +0900
> +++ lsbytesum_plamo	2020-11-03 23:38:39.214917650 +0900
> @@ -1,5 +1,6 @@
>  #!/bin/bash                                                                 
>  #     lsbytesum - sum the number of bytes in a directory listing             
> +export LANG="C"
>  TotalBytes=0                                                                 
>  for Bytes in $(ls -l | grep "^-" | awk '{ print $5 }')                       
>  do

こじまさんにいただいたアドバイスの修正にても、正常な結果表示が出来ました。
アドバイスありがとうございました。
お二方のコメントを参考に、もっと勉強してみます。


Follow-Ups
[plamo:33473] Re: lsbytesum による表示について, Takahiro Yoshizawa
References
[plamo:33469] lsbytesum による表示について, ABE Shin-ichi
[plamo:33470] Re: lsbytesumによる表示について, KOJIMA Mitsuhiro
[plamo:33471] Re: lsbytesum による表示について, Takahiro Yoshizawa

[検索ページ] [メール一覧]
Plamo ML 公開システム