2017-02-02 16 views
2

Я пытаюсь использовать grep в машине, но он просто не работает. Когда я использую его после конвейера (например, ps -aux | grep grep), он работает (в примере, показывающем процессы grep).Grep запускается в состоянии «S +»

Но я пытаюсь для поиска слова в файлы, но это только начинается S +() состоянии, независимо от того, если я пишу «grep anything», «grep -Ril anything» и т.д.

ответ

3

От человека странице:

Grep ищет названные входные файлы (или стандартный ввод, если файлы не по имени ...

Итак, когда вы запускаете grep anything, grep ждет стандартного ввода. вы должны дать ему либо файл имена в командной строке или ввод через stdin.

+0

Хммм, это сработало «частично», ранее я помню другую машину, где мне приходилось использовать другую команду (не помню). Поэтому для поиска в папке мне нужно указать папку, но на других машинах я обычно умею просто запускать «grep anything», и что-либо ищет в текущем пути. Почему разница? Машина, отказывающаяся от поиска в текущей папке, - CentOS 5.6. На другом компьютере, где он работает, работает CentoS 7.2.1511. Может быть, это просто версия grep? Может быть, предпочтения? – Phazoner

+0

Это определенно может быть разница в версии grep. Я вижу из руководства grep версии 2.27: Если вход не указан, grep ищет рабочий каталог. если задана опция командной строки, определяющая рекурсию; В противном случае grep выполняет поиск стандартного ввода. Таким образом, вы не сможете «grep anything» в новой версии, в соответствии с этим, но вы сможете «grep -r anything». Это соответствует вашему опыту? –