группировка предикатов в находке

Если вы не можете найти что-либо в Базе знаний Progress по этому поводу (я этого не сделал), вам, вероятно, следует открыть дело в Progress Support, если вы находитесь на техническом обслуживании.

Вы также можете попробовать более новую версию Progress или, по крайней мере, более новый пакет обновления для 11.6, 11.6.4, по-видимому, доступен.

6
задан Nathan Fellman 11 June 2009 в 06:22
поделиться

3 ответа

По умолчанию условия в списке аргументов находки 'and'ed вместе. -o средства опции 'или'.

Если Вы записали:

find $HOME -name \*txt -o -name \*html -print0

затем нет никакого выходного действия, связанного с концом имен файлов с 'txt', таким образом, они не были бы распечатаны. Путем группировки опций имени с круглыми скобками Вы получаете и 'HTML' и 'txt' файлы.


Рассмотрите пример:

mkdir test-find
cd test-find
cp /dev/null file.txt
cp /dev/null file.html

Комментарии ниже имеют интересный габаритный фонарь на этом. Если команда была:

find . -name '*.txt' -o -name '*.html'

затем, так как никакое явное действие не указано ни для одной альтернативы, значения по умолчанию -print (нет -print0!) действие используется для обеих альтернатив, и перечислены оба файла. С a -print или другое явное действие после одной из альтернатив (но не другой), затем только альтернатива с действием вступает в силу.

find . -name '*.txt' -print -o -name '*.html'

Это также предполагает, что у Вас могли быть различные действия для различных альтернатив. Вы могли также применить другие условия, такие как время изменения:

find . \( -name '*.txt' -o -name '*.html' \) -mtime +5 -print0

find . \( -name '*.txt'  -mtime +5 -o -name '*.html' \) -print0

Первая печать txt или файлы HTML, более старые, чем 5 дней (таким образом, это ничего не печатает для каталога в качестве примера - файлы, являются несколькими старыми секундами); вторая печать txt файлы, более старые, чем 5 дней или файлы HTML любого возраста (поэтому просто file.html). И так далее...

Благодаря DevSolar для его продвижения комментариев к этому дополнению.

8
ответ дан 8 December 2019 в 18:41
поделиться

"-o" означает ИЛИ. Т.е. имя должно закончиться в "txt" или "HTML". Скобки просто собирают в группу эти два условия.

3
ответ дан 8 December 2019 в 18:41
поделиться

(И) позволяют группировать поисковые параметры для команды находки.-o "или" оператор.

Эта команда находки найдет все файлы, заканчивающиеся в "txt" или "HTML", и передаст файлы как аргументы команде grep.

2
ответ дан 8 December 2019 в 18:41
поделиться
Другие вопросы по тегам:

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