Linux 下Shell脚本处理文件(夹)名中多出的空格

#!/bin/bash

DIRECTORY=`ls /var/www/html/erxue`

echo $DIRECTORY
dir=''

#直接使用ls /dir 的话,会将各个目录、文件以 空格 字符串拼接成一个字符串,for是通过空格来遍历数据的
#因此,需要在匹配的时候,做字符串处理,处理掉空格
#注意这里将空格替换的时候,如果文件(夹)名出现过你要替换之后的字符,这将会影响到替换
#例如:  原本是 a_b_c.txt  将_转换成 b => abbbc.txt  替换回来的时候 => a___c.txt

#补充: (tr ' ' 'K') 也可以用sed 's/ /K/g'

for dir in `ls -1 /var/www/html/erxue | tr ' ' 'K'`
    do
        
        echo '心累:'{$dir}
        #K替换成空格
        res=`echo $dir | tr 'K' ' ' `
        echo $res
        #重命名(也可以用rename)
        mv "$res" "$dir"

    done

 

如果你系统 rename 支持正则的话,以上都可以省略了,直接使用

rename 's/ /K/g' *

       可以将当前文件夹内所有文件的名字中得所有空格替换为_。其中g代表所有,如果不加g,如果文件名字中有多个空格,仅替换第一个。

 

转载于:https://my.oschina.net/querying/blog/1553089

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值