运维派 企业面试题3 为上题中的 "十个随机字母_test.html" 文件 更名

Linux运维必会的实战编程笔试题(19题)

企业面试题3

#将试题2中创建的文件名uopiyhgawe_test.html
# test-->修改为omg,html-->HTML

方法一:

思路: 循环读取文件名, 存入changename.tmp文件, 使用sed变更,删除源文件; 读取changename.tmp, 新建文件;

这种方法把简单的问题复杂化, 而且不适合批量更改已有文件内容的文件名;

#!/bin/bash
#
#
# 将试题2中创建的文件名uopiyhgawe_test.html
# test-->修改为omg,html-->HTML
touch /tmp/sh/changename.tmp
for i in `ls /tmp/www`;do
    echo $i >> /tmp/sh/changename.tmp;
    rm -f /tmp/www/$i
done

sed -i 's@_test.html@_omg.HTML@g' /tmp/sh/changename.tmp

for i in `cat /tmp/sh/changename.tmp`;do
    cd /tmp/www
    touch $i
done

rm -f /tmp/sh/changename.tmp 


方法2: 

思路: 循环读取文件名输出给 grep -o , 选择前面的十位随机字母字符串, 使用 mv 重命名

 

-98-[root@vm]10:50 /tmp/sh # cat changenamev2.sh 
#!/bin/bash
#
#
#change name with mv
#version 0.2

for i in `ls /tmp/www`;do
    bname=`echo $i | grep -o '[[:alpha:]]\{10\}'`
    mv /tmp/www/${bname}_test.html /tmp/www/${bname}_OMG.HTML
done

运行结果:

 

posted @ 2018-05-04 11:06  GETTOLIVE  阅读(228)  评论(0编辑  收藏  举报