2011-05-16 124 views
2

該命令將計算子目錄中文件的數量。這可以打印在同一行嗎?

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 

呢?

回答

4

有許多方法可以做到這一點.. 。這是一些不會改變你的代碼的東西。 (我把它放在多行以提高可讀性。)

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

pipe into tr刪除或替換換行符。我希望你想換行到變成一個製表符,就像這樣:

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

(編輯:我周圍的錯誤的方式)

0

do echo -n "$dir "

-n防止echo從後結束行。

+0

這將是我的答案@本,但問題是微妙的不同。目標是在一行上打印數字,然後打印目錄名稱。想想看,我剛剛在我的答案中發現了另一個錯誤! – 2011-05-16 01:08:31