1

Я пытался использовать Cygwin для эмуляции какой-нибудь классной функции поиска в Linux, и когда я выполняю grep в файлах (12 текстовых файлов - не большой), это занимает вечность. я использовал

grep -rne word

Я мог бы найти это слово быстрее вручную (даже без Ctrl + F). Есть ли причина, по которой это не работает? Как это исправить?

PS: я использую консоль Cygwin.

1 ответ1

5

Вы забыли сообщить grep где искать, так что он просто сидит и ждет данных, которые будут введены из 'stdin' - часто это канал, но в данном случае ваша клавиатура. Вы можете подтвердить, введя что-то вроде « this is a word », Enter, Ctrl Z, Enter.

Если вы хотите найти текущий каталог, рекурсивно, дайте . как путь.

grep -rne word .

(Примечание 2012-07: последняя версия GNU grep будет искать текущий каталог автоматически, если указан -r .)


Во многих случаях * будет работать, но это не рекомендуется, потому что 1) это неэффективно - расширение подстановочного знака для всех имен файлов занимает некоторое время и может даже превысить допустимую длину командной строки; 2) он не совпадает с точечными файлами (имена начинаются с точки) в большинстве оболочек, хотя я не уверен, относится ли это к расширению, выполненному самим Cygwin.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .