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

此代码使用“[0-9]”作为 reg expr 返回 0,在当前文件夹中有 2 个文件名为:“1”和“6”,每个文件的大小为 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 回答