ls | grep -P "$1" | awk '{ x += $5 } END { print "total bytes:" x }'
此代码使用“[0-9]”作为 reg expr 返回 0,在当前文件夹中有 2 个文件名为:“1”和“6”,每个文件的大小为 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 }'