这可以印在同一条线上吗?

时间:2011-05-16 00:45:53

标签: linux bash

此命令将计算子目录中的文件数。

find . -maxdepth 1 -type d |while read dir;do echo "$dir";find "$dir" -type f|wc -l;done

看起来像

./lib64
327
./bin
118

是否可以让它看起来像

327 ./lib64
118 ./bin

代替?

3 个答案:

答案 0 :(得分:4)

有很多方法可以做到这一点......这里的内容不会改变你的代码。 (为了便于阅读,我将它放在多行中。)

find . -maxdepth 1 -type d | while read dir; do
   echo `find "$dir" -type f | wc -l` "$dir"
done

答案 1 :(得分:1)

管道进入tr以删除或替换换行符。我希望您希望将换行符转换为制表符,如下所示:

find . -maxdepth 1 -type d |while read dir;do
   find "$dir" -type f|wc -l  | tr '\n' '\t';
   echo "$dir";
done

(编辑:我的方法错了)

答案 2 :(得分:0)

do echo -n "$dir "

-n阻止echo之后结束该行。