MDADM создает дополнительные блочные устройства

Используйте renameдля замены каждого числа самим собой минус 1.

$ rename -v 's/\d{6}/sprintf("%06",($&-1))/e'    

Примечания

  • renameиспользует выражения Perl для переименования файлов.
  • sуказывает, что renameзаменит некоторые или все имена файлов, соответствующие шаблону регулярного выражения.
  • Выражения подстановки в Perl имеют соответствующую структуру.
    • s/PATTERN/REPLACEMENT/MODIFIER
  • \d{6}— это шаблон, который renameбудет искать и заменять. Это 6 десятичных цифр.
  • $— это переменная, в которой хранится подстрока, совпадающая с \d{6}(, в данном случае «подстрока» — это int ).
  • sprintf("%06",($&-1))извлекает значение, хранящееся в $, уменьшает его на единицу, а затем возвращает это значение в качестве замены. %06предназначен для обработки ведущих нулей.
  • eуказал, что renameоценивает замену, как если бы это был оператор Perl, и использует возвращаемое значение в качестве текста замены.
  • -vзаставляет renameповторять то, что он делает.

Если вы хотите быть в большей безопасности, используйте флаг -n, чтобы renameтолько сообщал вам, что он будет делать, вместо того, чтобы делать это.

Похоже, что это работает только для уменьшения, поэтому обращайтесь с этим осторожно.

0
13.08.2019, 15:41
0 ответов

Теги

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