Я хотел бы найти все файлы, которые содержат определенную строку текста. Как бы вы сделали это в Терминале?
Я хотел бы найти все файлы, которые содержат определенную строку текста. Как бы вы сделали это в Терминале?
Ответы:
grep -r 'text goes here' path_goes_here
man grep
открыть для себя все замечательные варианты grep
No such file or directory
я пытаюсь получить только список вхождений текста. Как мы можем получить этот список?
grep -lr "text pattern" ./ -s
; grep -lr "text pattern" [PATH OF PARENT] -s
использовать прожектор
mdfind "text goes here"
mdfind -onlyin /home/user/Desktop -live "live update"
не забудьте посмотреть на:
man mdfind
brew install ack
ack "text goes here"
find . |grep "text goes here"
grep -RnslI "text goes here"
Вы можете выбрать один из следующих вариантов в зависимости от вашего вкуса и потребностей. Предположим, вам нужно искать файлы, содержащие текст - «асинхронно», рекурсивно в текущем каталоге, вы можете сделать это одним из способов, как показано ниже:
Ответ Игнасио великолепен и помог мне найти файлы, содержащие определенный текст. Единственная проблема, с которой я столкнулся, заключалась в том, что при запуске этой команды были бы перечислены все файлы, включая тот, в котором шаблон не отображался.
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]
только случай, когда кто-то незнакомый хотел узнать, почему я это сделал./