У меня 600 ГБ данных от пользователей Mac, сохраненных на диске, отформатированном в HFS +. Многие имена папок и файлов содержат «последние пробелы». Я не знаю, как пользователи их вставляли, но в результате через Samba папка с именем «Customer ABC» (с последним пробелом) становится, например, «EHFJ ~ 1». Кроме того, пользователи использовали специальные символы, такие как • и другие странные имена файлов.
Как массово переименовать эти файлы / папку, удалив последние пробелы? Возможно ли использование сценария linux / mac os?
Спасибо
Я написал небольшой скрипт на Python для удаления всех символов из имен файлов, что затрудняет их обработку в * nix.
Возможно, это поможет и вам.
#! /usr/bin/python
# -*- coding: UTF-8 -*-
"""
usage: fixFileNames.py FILE...
Renames FILEs to sensible names, avoiding collision.
"""
import sys
import os
from string import maketrans
def fixFileName(file):
'''
move file to filename:
- without spaces, pipe characters, quotes
'''
intab = ' |'
outtab = '__'
trantab = maketrans(intab, outtab)
newFileName = file.translate(trantab, '\'\"').replace('_-_', '-')
if file != newFileName:
#only renames file if it's name contains any unwanted characters
if os.path.exists(newFileName):
print "ERROR: Not renaming %s, %s exists already" % (file, newFileName)
else:
print "renaming %s to %s" % (file, newFileName)
os.rename(file, newFileName)
# else:
# print "file %s and newFilename %s are equal" % (file, newFileName)
if __name__ == "__main__":
if not len(sys.argv) > 1:
print __doc__
sys.exit(1)
for file in sys.argv[1:]:
fixFileName(file)
Кто угодно может использовать или улучшать это. Если у вас есть какие-то улучшения, я бы хотел о них услышать.
Да, это так! Не знаю, как именно, но, поскольку на это еще никто не ответил, я думаю, что это лучше, чем ничего. Использование некоторых регулярных выражений, соответствующих окончательному пробелу, должно быть возможно. Однако я не знаю, как получить усеченную часть имени файла