你不知道,运维也要写代码(2)"/>
【运维心得】你不知道,运维也要写代码(2)
文章目录
- 编程题目
- 代码解析
接着上次的文章说,运维写代码的场景还挺多的,今天说的这道题,有点儿像教科书。为什么这么说呢?你看了就知道了。
编程题目
- 使用for循环在/oldboy目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件,名称例如为:
coaolvajcq_oldboy.html qnvuxvicni_oldboy.html vioesjmcbu_oldboy.html
gmkhrancxh_oldboy.html tmdjormaxr_oldboy.html wzewnojiwe_oldboy.html
jdxexendbe_oldboy.html ugaywanjlm_oldboy.html xzzruhdzda_oldboy.html
qcawgsrtkp_oldboy.html vfrphtqjpc_oldboy.html - 将以上文件名中的oldboy全部改成oldgirl(用for循环实现),并且html改成大写。(请用至少两种方法实现)
代码解析
- 第一个问题,先声明,代码也是从网上找到的,重新执行验证了一下,下面的代码是我验证过的,另外,一定要在linux中重新敲一遍,或者转为unix格式,
:set fileformat=unix
否则即使按照我的代码,也会报错!所以大家今后看代码,一定要先自己验证一下。
原文请见使用for循环在/oldboy目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件,大家可以对比代码的区别。
dir=/oldboy
[ -d $dir ] || mkdir -p $dir
for n in {1..10}
doname=`tr -cd 'a-zA-Z' </dev/urandom |head -c10`touch $dir/${name}_oldboy.html
done
上述代码还是比较直观的,需要了解tr,/dev/random,/dev/urandom的用法,tr -cd 'a-zA-Z' </dev/urandom |head -c10
就是取10位随机数的命令,实在不理解的,就死记住吧。至于touch,就不多解释了,感觉这些代码的确比较基础,如果面试的时候写不出来,很难给面试官一个良好的印象。
- 第二个问题,网上找到了两种方法,都写出来,大家可以比较一下那种更适合自己。
第一种方法,
#!/bin/bash
cd /oldboy
for i in 'ls'
dorename ‘oldboy‘ ‘oldgirl‘ $i | rename ‘html‘ ‘HTML‘ $i
done
很明了的代码,只要会用rename的正则表达式就可以了。需要注意是ls
外面的引号一定不要用错!
第二种方法:
#!/bin/bash
cd /oldboy
for i in `ls`
domv $i `echo $i|sed -e ‘s#oldboy#oldgirl#g;s#html#HTML#g‘`
done
此方法用的是mv方式,说真的,这个命令不如上面的命令容易记忆。
更多推荐
【运维心得】你不知道,运维也要写代码(2)
发布评论