【问题标题】:Change spaces with underscore in filename更改文件名中带下划线的空格
【发布时间】:2016-07-06 10:21:40
【问题描述】:

我有一个带有空格的多个文件,我想用命令行替换下划线(Mac)

xxx xxx.jpg -> xxx_xxx.jpg

只有行命令可以吗?

【问题讨论】:

    标签: bash macos replace command filenames


    【解决方案1】:

    对于当前目录下的所有文件

    for i in *;do mv "$i" "${i// /_}";done
    

    如果您只想匹配带有空格的文件(以防止在尝试将文件移动到自身时出现大量错误消息),尽管您可以使用扩展 glob

    shopt -s extglob
    for i in +(* *);do mv "$i" "${i// /_}";done
    

    【讨论】:

    • @Inian 谁说这有什么问题?它没有被否决?
    • 赞成利用 Bash 的内置正则表达式功能,而不是通过管道传递给其他东西。不错!
    • 请始终使用mv -i 以避免批量移动时意外覆盖文件!
    猜你喜欢
    • 2018-01-28
    • 2011-10-10
    • 2018-11-25
    • 2013-01-01
    • 2014-11-27
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多