Если вы можете заполучить версию rename
со вкусом Perl, это просто так:
rename -n 's/(\d+)/$1 + 100/e' *fasta
Пример вывода
'Ciprianus_maximus_11_fred.fasta' would be renamed to 'Ciprianus_maximus_111_fred.fasta'
'Ciprianus_maximus_300_fred.fasta' would be renamed to 'Ciprianus_maximus_400_fred.fasta'
'Ciprianus_maximus_3900_fred.fasta' would be renamed to 'Ciprianus_maximus_4000_fred.fasta'
Если вы не можете прочитать Perl, это говорит ... "Сделайте одну подстановку следующим образом. Где бы вы ни увидели кучу цифр рядом друг с другом в строке (\d+
), запомните их (потому что япоместите это в скобки), а затем замените их оцененным выражением этой группы цифр ($1
) плюс 100. ".
Удалите -n
, если пробный прогон выглядит правильно,Единственная «сложная часть» - это использование e
в конце подстановки, что означает вычисление выражения в подстановке - или я называю это "вычисленнымзамена ".