Если вам нужен быстрый результат, используйте Spotlight. Также, если вы хотите найти файлы, которые не обязательно хранят текст непосредственно внутри файла, такие как PDF или ODF.
Джои
Хороший совет, но в моем случае я не уверен, что файлы проиндексированы, поскольку они находятся в сетевых драйверах. А также они являются XML-файлами, принадлежащими определенной программе.
Я бы посоветовал man grepоткрыть для себя все замечательные варианты grep
Людовик Куты
Это перечисляет каждый файл, который существует в пути и добавляет: No such file or directory я пытаюсь получить только список вхождений текста. Как мы можем получить этот список?
Вы можете выбрать один из следующих вариантов в зависимости от вашего вкуса и потребностей. Предположим, вам нужно искать файлы, содержащие текст - «асинхронно», рекурсивно в текущем каталоге, вы можете сделать это одним из способов, как показано ниже:
Ответ Игнасио великолепен и помог мне найти файлы, содержащие определенный текст. Единственная проблема, с которой я столкнулся, заключалась в том, что при запуске этой команды были бы перечислены все файлы, включая тот, в котором шаблон не отображался.
No such file or directory Это то, что я вижу рядом с файлами, которые не содержат шаблон.
Если вместо этого вы добавляете -sв команду, как в
grep -lr "text pattern" ./ -s:; grep -lr "text pattern" [PATH DIRECTORY] -sиспользуется, он покажет вам, какие файлы содержат шаблон.
Аналогично, если grep -nr "text pattern" ./ -s; grep -nr "text pattern" [PATH OF DIRECTORY] -sиспользуется команда, которая печатает файл плюс номер строки и вхождение шаблона.
Пожалуйста, поправьте меня, если мое понимание неверно.
Еще один способ избежать этих надоедливых. Нет таких ошибок файла , это направить stderr к нулю. grep ... 2>/dev/null, Это решение работает для большинства программ, так как они сообщают об ошибках в потоке stderr, а не в stdout. Я использовал это решение много раз с find, так как он скажет, что для многих файлов отказано в разрешении .
jpaugh
(1) Если вы получаете No such file or directoryсообщения для существующих файлов, либо вы что-то делаете неправильно, либо ваша система сломана. (2) Какое отношение это [PATH OF PARENT]имеет к чему-либо?
G-Man
@ G-Man Я отредактировал ответ, чтобы показать [PATH OF DIRECTORY]только случай, когда кто-то незнакомый хотел узнать, почему я это сделал./
CP3O
@ G-Man Я использую Mac, а не Ubuntu, не знаю, как моя система будет сломана, я пока что ничего с этим не сделал.
Ответы:
источник
man grep
открыть для себя все замечательные варианты grepNo such file or directory
я пытаюсь получить только список вхождений текста. Как мы можем получить этот список?grep -lr "text pattern" ./ -s
;grep -lr "text pattern" [PATH OF PARENT] -s
использовать прожектор
не забудьте посмотреть на:
источник
brew install ack ack "text goes here"
find . |grep "text goes here"
grep -RnslI "text goes here"
источник
Вы можете выбрать один из следующих вариантов в зависимости от вашего вкуса и потребностей. Предположим, вам нужно искать файлы, содержащие текст - «асинхронно», рекурсивно в текущем каталоге, вы можете сделать это одним из способов, как показано ниже:
Используя grep
Используя ack
источник
Ответ Игнасио великолепен и помог мне найти файлы, содержащие определенный текст. Единственная проблема, с которой я столкнулся, заключалась в том, что при запуске этой команды были бы перечислены все файлы, включая тот, в котором шаблон не отображался.
No such file or directory
Это то, что я вижу рядом с файлами, которые не содержат шаблон.Если вместо этого вы добавляете
-s
в команду, как вgrep -lr "text pattern" ./ -s
:;grep -lr "text pattern" [PATH DIRECTORY] -s
используется, он покажет вам, какие файлы содержат шаблон.Аналогично, если
grep -nr "text pattern" ./ -s
;grep -nr "text pattern" [PATH OF DIRECTORY] -s
используется команда, которая печатает файл плюс номер строки и вхождение шаблона.Пожалуйста, поправьте меня, если мое понимание неверно.
Ссылка: Как я могу заставить grep не распечатывать ошибки «Нет такого файла или каталога»?
источник
grep ... 2>/dev/null
, Это решение работает для большинства программ, так как они сообщают об ошибках в потоке stderr, а не в stdout. Я использовал это решение много раз сfind
, так как он скажет, что для многих файлов отказано в разрешении .No such file or directory
сообщения для существующих файлов, либо вы что-то делаете неправильно, либо ваша система сломана. (2) Какое отношение это[PATH OF PARENT]
имеет к чему-либо?[PATH OF DIRECTORY]
только случай, когда кто-то незнакомый хотел узнать, почему я это сделал./