Я хотел бы перечислить файлы рекурсивно и уникально, которые содержат данное слово.
Пример : проверяя слово 'check', я обычно выполняю команду grep
$ grep check * -R
Но так как это слово встречается много раз, я получаю много информации. Поэтому мне просто нужно перечислить имена файлов, которые содержат данное слово для поиска. Я предполагаю, что какой-то трюк find
и xargs
будет достаточно здесь, но не уверен.
Любые идеи?
find
grep
file-search
холодный морской тропический воздух
источник
источник
grep -rl "text to find" "/usr/share"
и это работало отлично!Вы, вероятно, не хотите использовать
-R
опцию, которая в современных версиях GNUgrep
следует по символическим ссылкам при спуске каталогов.-r
Вместо этого используйте параметр, который начиная с версии 2.12 (апрель 2012 г.) больше не следует символическим ссылкам.Если ваш grep не является GNU-версией или старше версии 2.12, или если ваш код должен быть переносимым на системы без кровотечения-GNU, используйте приведенную
find
выше команду.В противном случае вы можете сделать:
Не используйте
*
(так как это исключит скрытые файлы в текущем каталоге (и только в текущем каталоге) и вызовет проблемы для файлов, имя которых начинается с a-
), избегайте передачи параметров после аргументов, так как это не гарантированно будет работать в зависимости от среда и не является переносимым.источник
Попробуй это:
Что касается
grep
флагов ...-c
вернет имя файла с последующим: и число, указывающее, сколько раз строка поиска появляется в данном файле.-v
возьмет выходные данные из первогоgrep
поиска, отфильтрует файлы с нулевыми результатами и распечатает только файлы с ненулевыми результатами.источник
:0
. Это лучше сделатьgrep -v ':0$'
. Даже это захлебнется путями, которые содержат символы новой строки.grep -rin "whatToFind" locationToFInd
например, $ grep -rin "vihaan".
будет рекурсивно искать и перечислять имена файлов и соответствующие строки, в которых есть "vihaan", "." ссылается на текущий каталог.
источник
поиск в текущем каталоге. Для поиска из корня укажите
/
вместо.
источник
grep -lR "text-to-find" <where-to-find>
тоже отлично работает.например,
grep -lR "NAVIGATE" .
где мы находим словоNAVIGATE
в.
в текущем каталоге.источник
Дайте вам список
.q
файлов, содержащий ключевое словоtrim
источник