Bash 我如何编写一个脚本(使这个过程自动化),在文件名中查找空格和特殊字符。我在SVN中有大量的文件名数据

Bash 我如何编写一个脚本(使这个过程自动化),在文件名中查找空格和特殊字符。我在SVN中有大量的文件名数据,bash,shell,Bash,Shell,查找。-键入f | egrep-i“~| |&|@| | | | | | | | | | | | | | | | | | | | | | | | 124 我不确定像*或$这样的特殊字符。你能帮我解决这个问题吗 设置两个数组怎么样?一个用于特殊字符,一个用于替换字符(它们应该包含相同数量的索引) 首先,我建议编写一个脚本,使用单个文件名并修复它。然后你可以做: find . -type f -exec /path/to/fixNames.sh "{}" \; fixNames.sh然后可以包含:

查找。-键入f | egrep-i“~| |&|@| | | | | | | | | | | | | | | | | | | | | | | | 124


我不确定像*或$这样的特殊字符。你能帮我解决这个问题吗

设置两个数组怎么样?一个用于特殊字符,一个用于替换字符(它们应该包含相同数量的索引)


首先,我建议编写一个脚本,使用单个文件名并修复它。然后你可以做:

find . -type f -exec /path/to/fixNames.sh "{}" \;
fixNames.sh
然后可以包含:

rename 's/[ \t]/-/' "$1" # blanks
rename "s/'\",//" "$1" # characters to remove
rename 's/&/-n-/' "$1"
注意:用一个文件名不正确的文件夹来测试!只有当您知道这不会导致问题时,才对真实文件运行此操作

相关的:


这些线起作用了吗?你可以去掉
-name'*'
,因为它是一个过滤器,可以让一切通过。这样你就不用管它了。也许您应该使用它来查找包含错误字符的文件:
find-名称“*,*”-exec rename\,“{}”。我正在尝试编写脚本以使其自动化,我对此很陌生,因此,如果您能给我一些关于如何编写itI的示例,我建议您阅读,这为shell脚本编写提供了很好的介绍。谢谢Aaron。这个脚本链接对undersatnd非常有帮助。我正在尝试编写脚本以使其自动化,我对此很陌生,所以如果你能给我一些关于如何编写它的示例的话
rename 's/[ \t]/-/' "$1" # blanks
rename "s/'\",//" "$1" # characters to remove
rename 's/&/-n-/' "$1"