Как правильно исключить каталоги из поиска?

АВК--

awk -v RS='[\\=]+[\\=]' -v FS='\n' '/{"AAA"}/{ printf "%s%s%s%s",prevline,RT, $0, RT }{prevline="\n"$(NF-1)"\n"$NF}'./AppLog.txt
  1. Записи, разделенные ======

  2. Последние две строки сохраняются в предыдущей строке

  3. Печатается предыдущее сохраненное значение, разделитель, текущее значение и снова разделитель.

2
13.04.2020, 22:41
2 ответа

Вы пропустили предикат -pathперед последним значением параметра"./.cache"

Путь, используемый с -path, должен начинаться с пути поиска верхнего -уровня, используемого find. Например

  • find. -path './something/here'
  • find /etc -path '/etc/init.d'

Возможно, вам придется использовать подстановочный знак *, если вы хотите сопоставить имя каталога без указания его положения в дереве файловой системы. Этот пример будет соответствовать всем файлам(-type f)где-то в каталоге wizard

.
  • find. -path '*/wizard/* -type f -print
3
19.03.2021, 02:29

Для будущих читателей:POSIX-совместимые решения, которые не обходят исключенные каталоги и вообще не включают их в вывод , имеют общие форматы:

Одиночное исключение

find searchpath \! \( -path searchpath/excludepath -prune \)

Множественные исключения

find searchpath \! \( \( -path searchpath/excludepath1 -o -path searchpath/excludepath2 -o -path 'searchpath/excludepathprefix-*' \) -prune \)

Предотвращение этого обхода может привести к значительному улучшению производительности, когда эти каталоги содержат много файлов. Полное исключение исключенных каталогов из вывода предотвращает непреднамеренные действия с ними.

Дополнительные фильтры и выходные параметры могут быть размещены после всех показанных, за исключением таких, как -maxdepth, которые всегда размещаются сразу после searchpath. Аргументы -pathдолжны соответствовать тому, что findвыведет для этого каталога, а подстановочные знаки должны быть экранированы/заключены в кавычки.


Для этого вопроса ответ будет таким (, так как -printявляется значением по умолчанию):

find. \! \( \( -path./.cpan -o -path./.mozilla -o -path./.cache \) -prune \)
0
19.03.2021, 02:29

Теги

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