2013-10-19 59 views
-2

中執行wc我必須編寫一個腳本,在滿足條件的情況下(例如:文件夾以'A'開頭),然後遞歸地打開符合條件的每個dir並執行wc在裏面的文件。如果目錄中有超過50個文件,請使用wc來回顯目錄名稱。如果目錄滿足條件,那麼在每個

+6

請告訴我們你已經嘗試過了。 –

+2

這是一個相當簡單的任務,如果你嘗試,當你卡在某個地方,然後問你的疑問,你可以做到這一點。 –

+0

CONDITION='ls | grep A' if [ $CONDITION ];then \t for FILE in $CONDITION \t do \t \t ls -l | wc -l \t \t echo "$FILE" \t done \t fi

回答

1

它看起來像你想找到所有以A開頭的包含超過50個文件的目錄。

以下命令列出滿足一個字符串名稱的條件,如果他們有超過50個文件,在其中

NAME="A*" 
find . -type d -name "$NAME" -exec sh -c 'echo $(ls "{}" |wc -l) "{}"' \; | awk 'int($1)>=50' 
0

該腳本應該WRK你所有的目錄:

PREFIX="A" 

while read dir; do 
    numDir=$(d=($dir*/ .$dir/*/) && echo "${#d[@]}") 
    numFileDir=$(a=($dir/* $dir/.*) && echo "${#a[@]}") 
    [[ ((numFileDir-numDir > 50)) ]] && echo "$dir: " $((numFileDir-numDir)) 
done < <(find . -type d -name "$PREFIX")