LINUX.ORG.RU

man rename (perl-rename)

anonymous
()

Если я правильно понял вопрос,

rename -n 's/^\D+(\d+)\D+\.txt$/$1.txt/' *
# перезапустить без -n для применения

AITap ★★★★★
()
Ответ на: комментарий от int13h

С rename это все выглядит гораздо проще, но вот что-то рандомное с регэкспами на питоне:

>>> import re
>>> a = ["123abcd456.txt", "789qweqwe123312.txt"]
>>> b = re.compile(r'\d{3}(\w+)\d{3}.txt')
>>> for i in a: b.match(i).group(1)
... 
'abcd'
'qweqwe123'
Для переименования файлов надо еще заюзать модуль os, так что rename гораздо удобнее.

Deleted
()
Ответ на: комментарий от Deleted
import re

pat = r'^\D+(\d+)\D+\.txt$'
for i in [
  [i, re.sub(pat, r'\1.txt', i, flags = re.I)] for i in filter(
    lambda a: re.search(pat, a, re.I), os.listdir()
  )
]: print(*i)
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.