运维派 企业面试题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
运行结果: