1

Я пытаюсь использовать регулярные выражения для удаления набора файлов, однако оболочка bash возвращает сообщение

rm: cannot remove `[0-99]+ -': No such file or directory
rm: cannot remove `[a-zA-Z': No such file or directory
rm: cannot remove `]+.[a-z]+': No such file or directory

Команда это [0-99]+\ - [a-zA-Z ]+\.[a-z]+

Вопросы

  1. Могу ли я использовать регулярные выражения?
  2. Если да, то как мне использовать их с такими командами, как rm , mkdir и т.д.

2 ответа2

2

Bash (и другие оболочки Unix) используют подстановочные знаки, а не полные регулярные выражения, и диапазоны не могут содержать пробел.

1

Используйте регулярное выражение в команде find как

find . -type f -regex regEXP

и использовать его в тандеме с rm следующим образом

find . -type f -regex regEXP -exec rm -rf {} \;

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .