2013-10-01 66 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[@]}"