Как использовать '-чернослив' опция 'находки' в sh?

Я не вполне понимаю примера, данного от man find, кто-либо может дать мне некоторые примеры и объяснения? Я могу объединить регулярное выражение в нем?


Более подробный вопрос похож на это:

Запишите сценарий оболочки, changeall, который имеет интерфейс как changeall [-r|-R] "string1" "string2". Это найдет все файлы с суффиксом .h, .C, .cc, или .cpp и измените все случаи string1 кому: string2. -r опция для пребывания в текущем dir только или включая subdir's.

Примечание:

  1. Для нерекурсивного случая, ls НЕ позволяется, мы могли только использовать find и sed.
  2. Я попробовал find -depth но это НЕ поддерживалось. Вот почему я задавался вопросом если -prune мог помочь, но не понял примера от man find.

EDIT2: Я делал уроки, я не задавал вопрос в больших деталях, потому что я хотел бы закончить его сам. Так как я уже сделанный это и рука в нем, теперь я могу заявить целый вопрос. Кроме того, мне удалось выполнить задание без использования -prune, но хотел бы изучить это так или иначе.

206
задан Lii 12 August 2019 в 05:17
поделиться

1 ответ

Существует довольно много ответов; некоторые из них немного слишком много тяжелы теорией. Я уеду , почему я должен был сократить однажды поэтому, возможно, , вид need-first/example объяснения полезен для кого-то :)

проблема

, у меня была папка приблизительно с 20 каталогами узла, каждый имеющий node_modules каталог как ожидалось.

, После того как Вы входите в любой проект, Вы видите каждого ../node_modules/module. Но Вы знаете, как это. Почти каждый модуль имеет зависимости, поэтому на что Вы смотрите, больше похож projectN/node_modules/moduleX/node_modules/moduleZ...

, я не хотел тонуть со списком с зависимостью зависимости...

Знание -d n / -depth n, это не помогло бы мне, как основной/первый node_modules каталог, который я хотел каждого проекта, был на различной глубине, как это:

Projects/MysuperProjectName/project/node_modules/...
Projects/Whatshisname/version3/project/node_modules/...
Projects/project/node_modules/...
Projects/MysuperProjectName/testProject/november2015Copy/project/node_modules/...
[...]

, Как я могу получить первое список путей, заканчивающихся в первом node_modules, и переместиться в следующий проект получить то же?

Входят -prune

, Когда Вы добавите -prune, у Вас все еще будет стандартный рекурсивный поиск. Каждый "путь" проанализирован, и каждая находка выводит слюну, и find подавляет рытье как хороший парень. Но это - рытье вниз для больше node_modules, что я не хотел.

Так, различие - то, что в любом из тех различных путей, -prune будет find, чтобы прекратить рыть далее вниз, что конкретная авеню, когда она нашла Ваш объект. В моем случае, node_modules папка.

0
ответ дан 23 November 2019 в 04:46
поделиться
Другие вопросы по тегам:

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