在bash脚本中从du中删除输出的文件部分

时间:2015-02-24 08:34:53

标签: linux bash shell

我正在尝试在bash脚本中调用du时删除输出。我只是想打印出当前目录的大小。所以它看起来像这样:

DIRSIZE=$(du -hs $1)
printf "The size of the directory given is: %s\n" "$DIRSIZE"

我希望输出看起来像这样:

The size of the directory given is: 32K

但是,我的命令当前输出:

The size of the directory given is: 32K /home/dir_listed/

是否有一种简单的方法可以删除目录?

2 个答案:

答案 0 :(得分:2)

试试这个:

DIRSIZE=$(du -hs $1 | awk '{print $1}')
printf "The size of the directory given is: %s\n" "$DIRSIZE"

答案 1 :(得分:2)

使用 awk

DIRSIZE=$(du -hs $1 | awk '{print $1}')

仅从du输出中选择第一个字段并保存到DIRSIZE

使用 sed

DIRSIZE=$(du -hs $1 | sed 's/[[:space:]].*//')

从第一个space移至行尾并保存到DIRSIZE

cut

DIRSIZE=$(du -hs $1 | cut -f 1)

仅选择du输出中的第一个字段,该字段与标签分隔并保存到DIRSIZE