Aqui está um script Python que deve fazer o que você quer:
#!/usr/bin/env python2
# -*- coding: ascii -*-
"""remove_extensions.py
Remove meta-data filename extensions added by wget.
"""
import sys
import os
import re
# Define a regular expression to match the file-extension pattern
regex = r'^(.*),random-string-text.pagespeed.blah$'
for current_path, subdirectories, files in os.walk(sys.argv[1]):
for filename in files:
match = re.match(regex, filename)
if match:
newname = match.groups()[0]
newpath = os.path.join(current_path, newname)
oldpath = os.path.join(current_path, filename)
os.rename(oldpath, newpath)
Você terá que modificar um pouco as expressões regulares para corresponder aos seus padrões reais de nome de arquivo (ou atualizar sua pergunta para dizer o que eles são).
Aqui está um teste que ilustra o script em ação.
Crie alguns diretórios:
mkdir /tmp/dir1
mkdir /tmp/dir1/dir2
mkdir /tmp/dir3
Preencha-os com alguns arquivos:
touch /tmp/dir1/file{01..03}.jpg,random-string-text.pagespeed.blah
touch /tmp/dir1/dir2/file{04..06}.jpg,random-string-text.pagespeed.blah
touch /tmp/dir3/file{07..10}.jpg,random-string-text.pagespeed.blah
Verifique o que fizemos:
user@host:~$ tree /tmp
/tmp/
├── dir1
│ ├── dir2
│ │ ├── file04.jpg,random-string-text.pagespeed.blah
│ │ ├── file05.jpg,random-string-text.pagespeed.blah
│ │ └── file06.jpg,random-string-text.pagespeed.blah
│ ├── file01.jpg,random-string-text.pagespeed.blah
│ ├── file02.jpg,random-string-text.pagespeed.blah
│ └── file03.jpg,random-string-text.pagespeed.blah
└── dir3
├── file07.jpg,random-string-text.pagespeed.blah
├── file08.jpg,random-string-text.pagespeed.blah
├── file09.jpg,random-string-text.pagespeed.blah
└── file10.jpg,random-string-text.pagespeed.blah
3 directories, 10 files
Agora, execute o script:
python remove_extensions.py /tmp/
E, finalmente, verifique se ele teve o efeito pretendido:
user@host:~$ tree /tmp/
/tmp/
├── dir1
│ ├── dir2
│ │ ├── file04.jpg
│ │ ├── file05.jpg
│ │ └── file06.jpg
│ ├── file01.jpg
│ ├── file02.jpg
│ └── file03.jpg
└── dir3
├── file07.jpg
├── file08.jpg
├── file09.jpg
└── file10.jpg
3 directories, 10 files