stighy Asked: 2012-05-29 04:44:22 +0800 CST2012-05-29 04:44:22 +0800 CST 2012-05-29 04:44:22 +0800 CST 如何删除文件夹名称和文件名称的“最后一个空格”? 772 我有来自 Mac 用户的 600gb 数据,保存在 HFS+ 格式的磁盘中。许多文件夹和文件名都包含“最后的空格”。我不知道用户是如何插入它们的,但结果是通过 Samba,一个名为“Customer ABC”(最后一个空格)的文件夹变成了例如“EHFJ~1”。此外,用户使用特殊字符如• 和其他奇怪的文件名。 如何大量重命名删除最后空格的文件/文件夹?是否可以使用 linux/mac os 脚本? 谢谢 linux mac bash hfs+ 2 个回答 Voted Best Answer Bram 2012-05-29T06:13:12+08:002012-05-29T06:13:12+08:00 我写了一个小的 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) 任何人都可以免费使用和/或改进它。如果您有任何改进,我想听听。 Ingo 2012-05-29T05:58:48+08:002012-05-29T05:58:48+08:00 是的!我不知道具体怎么做,但由于还没有其他人回答这个问题,我认为总比没有好。使用一些正则表达式,匹配最后的空格应该是可能的。但是我不知道如何获取文件名的截断部分
我写了一个小的 python 脚本来删除文件名中的所有字符,这使得在 *nix 下处理它们变得困难。
也许这也可以帮助你。
任何人都可以免费使用和/或改进它。如果您有任何改进,我想听听。
是的!我不知道具体怎么做,但由于还没有其他人回答这个问题,我认为总比没有好。使用一些正则表达式,匹配最后的空格应该是可能的。但是我不知道如何获取文件名的截断部分