批量生成随机字符文件名与批量修改

1,023 阅读1分钟

一、案例要求

1、使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下:

2、shell脚本实现代码:

[ -d /oldboy ] || mkdir /oldboy ##/oldboy判断该目录是否存在,不存在就创建 -f 判断文件
cd /oldboy
echo $(pwd) && \  ##查看当前目录,&&为与命令,命令过长可用'\'断开换行

for i in {1..10} ## 表示范围用{1..10}表示
do
filename=$(uuidgen|tr '0-9' 'a-z'|cut -c 1-10 )
##下文详解
touch ${filename}_oldboy.html ##${}表明变量边界
done

3、uuidgen|tr '0-9' 'a-z'|cut -c 1-10 解析

uuidgen可随机生成32为注册码

tr '0-9' 'a-z' 把注册码中的注册码替换为字母

cut -c 1-10 截取前10字符

二、批量修改上例文件名

1、将上面的文件名中的oldboy字符串全部改成oldgirl(最好用for循环实现),并且将扩展名html全部改成大写。

dir=/oldboy
cd $dir && \

for i in $(ls *html)
do
rn=$(echo $i|cut -c -10)
mv $i ${rn}_oldgir.HTML
done

注:注意区别()与{}的作用