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

427
Profpatsch

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

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

11
К сожалению, ответ, кажется, нет. Nifle 9 лет назад 1
Кажется, каждые пару месяцев я гуглю это и возвращаюсь на эту страницу. Gregory Nisbet 7 лет назад 4
@GregoryNisbet Моим «решением» было переключиться на «ag», который примерно в 5–10 раз быстрее, чем «ack» и не имеет недостатков. В сочетании с переходом на SSD у меня не было проблем с тех пор. Profpatsch 7 лет назад 2

1 ответ на вопрос

2
Guido Leenders

Я не знаю, 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: является каталогом` xtian 6 лет назад 0
Если вы не собираетесь использовать `-print0` для поиска, по крайней мере, выполните` find. -maxdepth 1 -exec grep {} +; `. https://mywiki.wooledge.org/BashFAQ/020 Limited Atonement 6 лет назад 0

Похожие вопросы