grep * из командной строки не работает, но grep *. работает
Почему "staff*22" ничего не показывает, в то время как "staff.*22" перечисляет строки, которые содержат персонала, за которым следует 22, хотя ни одна из строк не содержит "." в них?
$ ls -l | grep "staff*22"
$ ls -l | grep "staff.*22"
drwxrwxr-x 2 kim staff 68 Jan 12 22:23 hihi
drwxrwxrwx 4 kim staff 136 Jan 12 22:29 temp2
drwxrwxrwx 3 kim staff 102 Jan 12 22:41 tes2
1 ответ
Что делают данные команды grep
Из вашего вывода видно, что вы хотите найти все файлы, которые принадлежат к группе "сотрудники" и созданы в 22 часа (или в 22 часа в 12-часовом формате). Мы рассмотрим это ниже, но давайте сначала выясним, каковы ваши grep
Команды делают и почему они не являются тем инструментом, который вы хотите.
Прежде всего, два grep
Команды, которые вы выполняете, немного отличаются в том, как они интерпретируются, и ваш подход неверен - вы не должны пытаться анализировать вывод ls.
grep "staff*22"
читается как "соответствует всем строкам, которые начинаются с" staf "и могут иметь или не иметь в них лишние" f ", за которыми сразу следует" 22 "".$ echo "staff whatever 22" | grep 'staff*22' $ echo "staff22" | grep 'staf*22' staff22 $ echo "staf22" | grep 'staff*22' staf22 $ echo "staf22" | grep 'staff*22' staf22
grep "staff.*22"
читается как "соответствует всем строкам, в которых есть" посох ", ноль или более символов между ними (любой тип символов) и число 22".$ echo "staff whatever 22" | grep 'staff.*22' staff whatever 22
Лучший подход
ls
Команду в целом следует использовать только для интерактивного листинга, т. е. когда вы хотите быстро взглянуть на то, что находится внутри папки. Когда необходимо найти конкретные файлы, или как работать с этими файлами через скрипт, find
Команда - это путь. Она имеет -group
переменная, которая поможет вам изолировать все файлы, которые принадлежат staff
группа и -nevermt
для поиска файлов с временем модификации более новым, чем определенная дата. Например, что вы хотите, вероятно, это:
find . -group staff -newermt "2017-01-12 21:59:59"
Смотрите также это: https://superuser.com/questions/580273/ubuntu-linux-find-files-between-specific-times