Почему у команды find есть -regex, когда есть grep? - PullRequest
1 голос
/ 14 июля 2020

Есть ли веская причина использовать find -regex REGEX, когда find | grep REGEX быстрее в любом сценарии, даже с небольшим количеством файлов для поиска?

Если нет, то почему опция -regex даже существуют? Когда это также вызывает путаницу из-за того, что синтаксис регулярных выражений отличается от других утилит (grep, sed, awk) и других, чтобы изменить его, вы должны указать утомительную опцию -regextype TYPE

По крайней мере, в sed и grep, достаточно указать -E, чтобы использовать расширенные регулярные выражения вместо basi c.

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

find | grep REGEX может быть быстрее, но менее гибко. При использовании find -regex вы можете продолжить с другими вариантами поиска, например -exec, что может быть проблематично c с grep.

0 голосов
/ 14 июля 2020

Он есть, потому что вы можете комбинировать его с другими тестами, возможно, со сложными логическими условиями. Это было бы невозможно сделать только с помощью трубопроводов. Например:

find -type f -regex 'regex1' -o -type d -regex 'regex2'

Здесь используется другое регулярное выражение для файлов и каталогов.

...