当前位置: 技术问答>linux和unix
【新手在shell中遇到的问题】不知道对你们是不是小case
来源: 互联网 发布时间:2016-06-04
本文导语: 如下,在shell里面我用while写循环,然后循环体里面加上建立文件的语句,但是建立文件命名的时候怎么弄呢,是后面加上三位数字……不知道怎么操作 编写shell脚本,实现下列功能: (1) 建立/root/test目录,在此目录下创...
如下,在shell里面我用while写循环,然后循环体里面加上建立文件的语句,但是建立文件命名的时候怎么弄呢,是后面加上三位数字……不知道怎么操作
编写shell脚本,实现下列功能:
(1) 建立/root/test目录,在此目录下创建100个文件,文件命名规则是A001,A002,。。。,A100;
(2) 再创建1000个文件,命名规则为B+数字,例如B1090;
(3) 建立目录jishu和oushu;
(4) 根据文件名中的数字奇数和偶数情况,自动将相应文件移动到jishu和oushu目录;
|
第1点的shell:
第2点就在上面稍微改一下就可以了。
第3点就不用讲了。
第4点,搞个for循环针对ls的结果逐一处理,取出文件名最后一位放短一下是否为0,2,4,6,8,就可知道是奇偶数。
for filename in `ls A*`
do
lastdigit=`expr substr $filename 4 1`
if..或case..判断即可。
done
for filename in `ls B*`
do
lastdigit=`expr substr $filename 5 1`
if..或case..判断即可。
done
cd /root/test
i=1
while [ $i -lt 101 ]
do
filename=`echo $i|awk '{printf("%03d",$0)}'`
filename="A"$filename
touch $filename
i=`expr $i + 1`
done
第2点就在上面稍微改一下就可以了。
i=1
while [ $i -lt 1001 ]
do
filename=`echo $i|awk '{printf("%04d",$0)}'`
filename="B"$filename
touch $filename
i=`expr $i + 1`
done
第3点就不用讲了。
第4点,搞个for循环针对ls的结果逐一处理,取出文件名最后一位放短一下是否为0,2,4,6,8,就可知道是奇偶数。
for filename in `ls A*`
do
lastdigit=`expr substr $filename 4 1`
if..或case..判断即可。
done
for filename in `ls B*`
do
lastdigit=`expr substr $filename 5 1`
if..或case..判断即可。
done