脚本删除文件名中的空格


用lua、python3来删除文件名中的空格。




工作不认真,
目录下的文件名有空格,
遇到这种就很烦躁呀,
算了,
还是搞个脚本解决下吧。


做的很简单,
处理的是当前目录下所有文件的文件名,
通过替换字符串的方式将空格替换了。


环境:MAC


- lua方法

    local files = {}
    local all = io.popen("ls ")
    for filename in all:lines() do
        if string.find(filename, ' ') then
            local newName = string.gsub(filename, ' ', '')
            os.rename(filename, newName)
        end
    end


  • python3方法

    import os
    for parent, dirnames, filenames in os.walk(os.getcwd()):
        for filename in filenames:
            os.rename(os.path.join(parent, filename), os.path.join(parent, filename.replace(' ', '')))
    
在Linux系统中,处理文件名空格的文件有以下几种方法: #### 查找包含空格文件名并进行处理 使用`find`命令结合`sed`、`grep`和`while`循环来查找包含空格文件名,对空格进行转义,过滤掉以空格结尾的文件名,并逐行处理找到的文件,最后进行重命名操作。 ```bash # 查找所有包含空格文件名 find "$base_dir" -type f -name "*[[:space:]]*" | \ # 尝试对空格进行转义(空格) sed 's/ /\ /g' | \ # 过滤掉以空格结尾的文件名(grep -v表示反向匹配) grep -v ' $' | \ # 逐行处理找到的文件 while read name; do # 注释掉的删除所有空格的操作 na=$(echo $name | tr -d ' ') # 只替换路径中的"/ "为"/"(去掉紧跟在斜杠后的空格) nb=$(echo "$na" | sed 's/\/ /\//') # 打印原始路径 echo "oldfile : $name" # 打印处理后的新路径 echo "newfile: $nb" # 注释掉的打印删除所有空格后的路径 #echo "$na" # 执行重命名操作(将原路径中的"/ "替换为"/") mv -- "$name" "$nb" echo "done" done ``` 这种方法可以查找出指定目录下所有包含空格文件名,并对其进行重命名,去掉路径中紧跟在斜杠后的空格 [^2]。 #### 使用脚本批量处理文件名中的空格 可以使用脚本文件名进行扫描识别,并进行重命名操作。以下是一个示例脚本: ```bash #!/bin/bash #ScanFile.sh #author:pfh #date:2021/03/05 Files=$1 echo "----------begin----------" echo "Directory:"$1 if [ X$1 = X ];then echo "Directory is null" else echo "Directory is not null" fi if [ $# -eq 1 ]; then while IFS= read -r -d $'\0'; do FileList=("$REPLY") FileType=$(ls -lhd "$FileList" | awk -F ' ' '{print $1}' |cut -c 1) if [ "$FileType" == d ]; then : else FileSize=$(ls -l "$FileList" | awk -F ' ' '{print $5}') Max_size=$((1024*10*10)) #100k if [ "$FileSize" -gt "$Max_size" ]; then ls -lh "$FileList" fi fi done < <(find $1 -print0) else echo "--usage:bash $0 + [directory] or [file];" echo "--example:bash $0 /root/test" fi echo "----------end----------" ``` 该脚本可以对指定目录下的文件进行处理,虽然没有直接处理文件名中的空格,但可以在此基础上添加重命名的逻辑 [^4]。 #### 使用编程语言处理文件名中的空格 使用PHP语言编写脚本,遍历指定目录下的文件,将文件名中的空格替换为空,并执行重命名操作。 ```php <?php $source = opendir('/data/kara/wyq/bak_m4a'); while($row = readdir($source)){ if($row == '.' || $row == '..'){ continue; } $newfile = str_replace(' ', '', $row); exec("mv /data/kara/wyq/bak_m4a/\"$row\" /data/kara/wyq/bak_m4a/$newfile", $a, $b); // 注意如果使用shell等外部脚本解析执行,那么带空格文件名需要使用引号引起来 } ?> ``` 这种方法可以批量处理指定目录下文件名中的空格 [^4]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值