标签:
linux下的bash脚本,据说很简单,但是我没有学过脚本,甚至语法的书我都没看过,所以,脚本不会写,但大概能看懂啥意思,也不想刻意花大量时间去学。
这个脚本是这样的,我要在某个目录下建立很多目录,例如000,001,002,003...大概1000个,而在每一个子目录中还要建立子目录,也是000,001,002,...大概1000个,最终这些最底层目录下放文件,文件的目录大概是这样data/000/008/*.txt,现在要建立这样的目录结构,人工去建立肯定是打死也不想做的,于是想简单偷懒,从网上找,找了1个多小时,还别说,找到了,但是来源,没记录,所以先分享记录下吧,下面是代码:
#!/bin/sh for i in $(seq -w 1 999) do for j in $(seq -w 1 999) do mkdir -p NewRingFile22/$i/$j done done我把它命名为makedirs.sh,linux下运行:./makedirs.sh,最终目录结构(目录下运行:tree)如下图:
这是一部分,目录062下还有目录001~999,以上代码很简单,却可以帮助解决很多繁杂的问题,语法也就循环里面的do。。done,核心是mkdir -p ,表示允许有父目录,不懂的回去在linux下:man mkdir
下面再说一个批量复制并重命名的脚本,一般情况发生在测试的时候,比如你只有一个带处理数据,要测试1W个这样的数据,要写个脚本,复制+重命名,下面是代码:
#!/bin/bash i=0 F=a while [$i -le 1000] #循环1000次,直到小于i,即0 do cp -vf *.txt $F$i.txt #复制*.txt为ai.txt,i为变量,每次+1 let i+1 done非常方便,要多用这种简约但很精髓的脚本,并尝试着去写,如果用C或其他语言去写。。。犹如用大斧子在削铅笔。结果的图自己回去运行就看到了
标签:
原文地址:http://blog.csdn.net/recsysml/article/details/45479749