0

在我的 Ubuntu 14.10 服务器上,我需要检查位于

/home/docks/*userid*

我是一个 bash 新手,但我已经走到了这一步

du -csh /home/docks/userid | grep total会回来,说,

16K total

现在我真的不在乎总数,所以我想进一步修剪它并获得 16K。我想在 shell 脚本中有一种相对简单的方法可以做到这一点。我将非常感谢任何能够告诉我如何操作的人。

4

2 回答 2

1

当语言版本与英语不同并且输出中的“总”单词可能以不同的语言出现时,您可能会遇到计算用户文件夹大小的问题。

防止这种情况发生的一点“黑客”(考虑到摘要总是作为du输出的最后一行打印):

du -csh /home/docks/userid | tail -n 1 | cut -f1

或者你可以只使用:

du -sh /home/docks/userid | cut -f1
于 2015-04-09T10:53:33.350 回答
1

一个简单的 awk 就可以完成这项工作,您无需使用 grep。

du -csh /home/docks/userid | awk '/total/{print $1}'

或者

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一个或多个空格字符的字符串。

于 2015-04-09T10:24:08.560 回答