Busybox найти
заявки в поддержку Параметр -regex
, который можно использовать для удаления файлов, которые действительно соответствуют шаблону:
find . -type f -regex '.*\.tmp\|.*\.core' -delete
К сожалению, исключение списка расширений без параметра -not
невозможно в общем случае (технически есть решение , но оно не масштабируется). Это причина включения опции - not
в первую очередь. Если вам нужно исключить произвольный список расширений, вам понадобится find
, который поддерживает эту опцию, или find
+ grep
+ xargs
:
find . | grep -v -e '\.jpg$' -e '\.txt$' | xargs rm
Граница слова имеет такой же эффект, как -w
, но может использоваться как часть выражения.
'\b'
Сопоставляет пустую строку на краю слова.
[...]
'\<'
Искать пустую строку в начале слова.
'\>'
Искать пустую строку в конце слова.
Искать bar
только когда это целое слово, а foo
где угодно (включая внутри более длинных слов):
grep -E 'foo|\<bar\>'
Учитывая, что foo будет использоваться в том же контексте, что и foo, а также соответствовать полному слову, проще всего сделать так:
grep -E -w '(foo|bar)' file