Удалите имя файла с цифрами с «найти» в OSX и GNU - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь выполнить поиск по файлу и удалить похожие файлы с цифрами в имени

  • myfile.txt

из

  • myfile_00_04_version.txt
  • myfile_00.txt

.

find -E . -iregex ".*myfile.*([^0-9]{1,})\.txt"

избавляется от myfile_00.txt, но не от myfile_00_04_version.txt

Я попытался найти OSX и GNU, но безрезультатно.

1 Ответ

0 голосов
/ 25 октября 2018

Вторая .* позволяет шаблону сопоставлять любые символы в диапазоне от myfile до нецифровой цифры, за которой следует .txt.Вам нужно удалить его и использовать

.*myfile[^0-9/]{1,}\.txt

Обратите внимание, что [^0-9/] будет соответствовать любому символу, кроме цифры, и / (чтобы остаться в пределах имени файла).

Или,чтобы имя файла начиналось с myfile:

(.*/)?myfile[^0-9/]{1,}\.txt

, где (.*/)? соответствует необязательной подстроке, от начала пути до последней /.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...