用新行分割du命令的结果

时间:2019-11-12 02:50:25

标签: sed sh du

我列出了硬盘上占用最多空间的前20个文件/文件夹。我想将它们分成size path/to/file。下面是我到目前为止所做的。

我正在使用:var=$(du -a -g /folder/ | sort -n -r | head -n 20)。它返回以下内容:

120    /path/to/file
115    /path/to/another/file
110    /file/path/ 

我尝试了以下代码将其分成几行。

for i in $(echo $var | sed "s/\n/ /g")
do
    echo "$i"
done

我想要的结果如下:

120 /path/to/file,
115 /path/to/another/file,
110 /file/path/,

这是我得到的结果:

120, 
/path/to/file,
115, 
/path/to/another/file,
110, 
/file/path/,

1 个答案:

答案 0 :(得分:1)

我认为awk会更容易,并且可以与原始命令的管道结合使用:

du -a -g /folder/ | sort -n -r | head -n 20 | awk '{ print $1, $2 "," }'

如果您无法创建单个管道,而必须使用$ var

echo "$var" | awk '{ print $1, $2 "," }'