1
ls | grep -P "$1" | awk '{ x += $5 } END { print "total bytes:" x }' 

このコードは、reg expr として "[0-9]" を使用して 0 を返しています。現在のフォルダーには、"1" と "6" という名前の 2 つのファイルがあり、それぞれのサイズは 138 バイトです。

誰でも問題を見つけるのを手伝ってくれますか?

4

2 に答える 2

2

duこれであなたを助けることができます; -c「総計」を表示するためのフラグがあります。合計サイズの後に total という単語が続く最終行が表示されます。したがって、以下は、選択した合計サイズをバイト単位で示します。

du -bc yourFilePattern | awk 'END {print $1}'

編集:

次のようなもの*pattern*では不十分で、正規表現が必要な場合は、次を使用してください。

ls | grep -P "$regex" | xargs du -bc | awk 'END {print $1}'
于 2013-02-04T16:02:05.723 に答える
2

-lへのオプションが欠けているだけですls

ls -l | grep -P "$1" | awk '{ x += $5 } END { print "total bytes:" x }' 
于 2013-02-04T16:05:44.153 に答える