在我的Ubuntu 14.10服务器上,我需要检查位于
的用户文件夹的大小 /home/docks/*userid*
我是一个bash新手,但我已经走到了这一步
du -csh /home/docks/userid | grep total
将返回,比方说,
16K total
现在我并不关心总数,所以我想进一步调整,只需要16K。我想在shell脚本中有一种相对简单的方法。我非常感谢任何能够告诉我如何做的人。
答案 0 :(得分:1)
一个简单的awk将完成你不需要去grep的工作。
du -csh /home/docks/userid | awk '/total/{print $1}'
OR
du -csh /home/docks/userid | awk '$2 ~ /^total$/{print $1}'
或强>
du -csh /home/docks/userid | grep -oP '\S+(?=\s+total\b)'
\S+
将匹配一个或多个非空格字符。 (?=\s+total\b)
肯定前瞻,断言匹配必须后面跟着一个或多个空格字符的字符串total
。
答案 1 :(得分:1)
当语言版本与英语不同时,您可能会在计算用户文件夹的大小时出现问题,并且'总计'输出中的单词可能以不同的语言出现。
一点点" hack"防止出现这种情况(考虑到摘要总是打印在du
输出中的最后一行):
du -csh /home/docks/userid | tail -n 1 | cut -f1
或者你可以使用:
du -sh /home/docks/userid | cut -f1