2013-10-01 2 views
-1

Как узнать, сколько учеников имеет o в имени своего аккаунта на моем сервере. Их домашний каталог находится в /home/studentsИспользование подстановочных знаков и grep

Я попытался

grep *o* /home/students 

это не работает.

+0

Если это домашнее задание, пожалуйста, пометить его как таковой. – scorpiodawg

+0

@scorpiodawg Тег 'homework' больше не существует. – 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[@]}" 
Смежные вопросы