2013-10-01 101 views
-1

我如何知道有多少學生在我的服務器中的帳戶名中有o。他們的家目錄是在/home/students使用通配符和grep

我已經試過

grep *o* /home/students 

這不起作用。

+0

如果這是家庭作業,請將其標記爲此類。 – scorpiodawg

+0

@scorpiodawg「家庭作業」標籤不再存在。 – devnull

回答

0

使用

ls -1 /home/students | grep o | wc -l 

- 你不能這樣做只是因爲ls -1 /home/students/*o*它會列出匹配的目錄內的文件。

2

你可以說:

find /home/students -mindepth 1 -maxdepth 1 -type d -name "*o*" 

這將返回一個包含o的目錄。

爲了找到計數,管wc -l

find /home/students -mindepth 1 -maxdepth 1 -type d -name "*o*" | wc -l 

This後解釋了爲什麼你不應該分析的ls輸出。

1

這不會列出目錄內容:

ls -1d *o* | wc -l 
+0

這就是爲什麼我喜歡這樣 - 總是有要學習的點:p謝謝 –

0

使用數組與適當的文件模式:

o_students=(/home/students/*o*/) 
echo "${#o_students[@]}"