Поиск в ширину с помощью ack или grep


11

Когда я ищу, например, мой домашний каталог с помощью ack(или grep), я обычно хочу знать, где я устанавливаю конкретную опцию.

Поскольку большинство конфигурационных файлов действительно близко к ~нему, это значительно ускорило ackбы поиск по ширине. Это возможно?


1
К сожалению, ответ, кажется, нет.
Nifle

4
Кажется, каждые пару месяцев я гуглю это и возвращаюсь на эту страницу.
Грегори Нисбет

2
@GregoryNisbet Мое «решение» состояло в том, чтобы переключиться на него ag, что примерно в 5–10 раз быстрее ackи не имеет недостатков. В сочетании с переходом на SSD у меня не было проблем с тех пор.
Profpatsch

Ответы:


3

Я не знаю, ackно с такими инструментами, которые grepя обычно использую:

( find . -maxdepth 1 -print ; find . -mindepth 2 -print ) | xargs -n 50 -exec grep TXT

Часть между (и )гарантирует, что сначала будут перечислены файлы на уровне 1, а затем - на уровне 2 и более (можно варьировать). xargsкормит имена файлов за 50 до grep.

Конечно, это зависит от того, какой вариант findдоступен на вашей платформе. Если вы запускаете что-то 30 лет назад, вам нужно использовать что-то вроде сортировки по количеству прямых косых черт.


MMV (Archlinux):grep: ./.macromedia/Flash_Player/#SharedObjects/Q2GSRK6Y/www.mixcloud.com/media: Is a directory
xtian

Если вы не собираетесь использовать, -print0чтобы найти, по крайней мере, сделать find . -maxdepth 1 -exec grep {} +;. mywiki.wooledge.org/BashFAQ/020
Ограниченное искупление
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.