ls | grep -P "$1" | awk '{ x += $5 } END { print "total bytes:" x }'
このコードは、reg expr として "[0-9]" を使用して 0 を返しています。現在のフォルダーには、"1" と "6" という名前の 2 つのファイルがあり、それぞれのサイズは 138 バイトです。
誰でも問題を見つけるのを手伝ってくれますか?
du
これであなたを助けることができます; -c
「総計」を表示するためのフラグがあります。合計サイズの後に total という単語が続く最終行が表示されます。したがって、以下は、選択した合計サイズをバイト単位で示します。
du -bc yourFilePattern | awk 'END {print $1}'
編集:
次のようなもの*pattern*
では不十分で、正規表現が必要な場合は、次を使用してください。
ls | grep -P "$regex" | xargs du -bc | awk 'END {print $1}'
-l
へのオプションが欠けているだけですls
。
ls -l | grep -P "$1" | awk '{ x += $5 } END { print "total bytes:" x }'