![递归重命名多个文件并删除多个字符,例如? : 或名称中的换行符](https://linux22.com/image/3527/%E9%80%92%E5%BD%92%E9%87%8D%E5%91%BD%E5%90%8D%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6%E5%B9%B6%E5%88%A0%E9%99%A4%E5%A4%9A%E4%B8%AA%E5%AD%97%E7%AC%A6%EF%BC%8C%E4%BE%8B%E5%A6%82%EF%BC%9F%20%3A%20%E6%88%96%E5%90%8D%E7%A7%B0%E4%B8%AD%E7%9A%84%E6%8D%A2%E8%A1%8C%E7%AC%A6.png)
我见过一些类似的问题,但没有任何内容说明如何递归地从所有文件名中删除任何一组特殊字符。
我想保留大写和小写字母、数字和下划线,并删除文件名中的所有特殊字符。我看到了冒号和问号字符以及几个带有换行符的文件名。
答案1
如果您想从命令行执行此操作,可以使用 rename 命令。
rename 's/[^a-zA-Z0-9_]//' *.<file_format>
上面的命令将保留大写字母、小写字母、下划线和数字。它删除所有其他字符。
我见过一些类似的问题,但没有任何内容说明如何递归地从所有文件名中删除任何一组特殊字符。
我想保留大写和小写字母、数字和下划线,并删除文件名中的所有特殊字符。我看到了冒号和问号字符以及几个带有换行符的文件名。
如果您想从命令行执行此操作,可以使用 rename 命令。
rename 's/[^a-zA-Z0-9_]//' *.<file_format>
上面的命令将保留大写字母、小写字母、下划线和数字。它删除所有其他字符。