Linux程序设计(Linux shell编程的例子:批量处理文件)


各位看官们,咱们今天还是接着上一回的内容,列举具体的例子给大家。闲话休说,言归正转。


各位看官们,在实际的工作中经常需要批量处理文件,比如批量删除文件等。咱们今天就通过例子来说明

如何批量操作文件。咱们今天的内容有批量建立文件,批量重命名文件,批量删除文件。看官们批量本质

上是重复做相同的事情,这该使用什么操作?“循环”。台下已经有看官回答了。完全正确,咱们就是使用

循环操作来实现批量这个功能。新建文件,删除文件和重命名文件的命令:touch,rm,mv,我想大家都

记得如何使用这些命令吧。如果忘记的话,再通过咱们下面的例子来回顾一下。


各位看官们,新建立一个叫sample.sh的脚本文件,然后在里面输入布下的内容,并且保存。

#! /bin/bash

echo "-----------------the starting line of shell-----------------"

# create new files
for name in Test{1..3}.h
do
    touch $name
done

#show the files, which is created
for name in *.h
do
    echo $name
done

#rename the files
i=0
for name in *.h
do
    newname=${name%.*}-$i
    mv "$name" "$newname.h"
    let i++
done

#show the new files, which is renamed
for name in *.h
do
    echo $name
done

#remove the files
for name in *.h
do
    rm -rf $name
done

echo "-----------------the ending line of shell-----------------"


在终端中运行该程序可以得到以下的结果:

-----------------the starting line of shell-----------------

Test1.h

Test2.h

Test3.h

Test1-0.h

Test2-1.h

Test3-2.h

-----------------the ending line of shell-----------------


看官们,大家可以看到通过for循环操作实现了批量功能。该脚本文件会在脚本文件所在的目录中新建立

文件,大家可以把它放到自己定义的目录执行。该脚本中没有指定专门的目录,在显示文件的时候,也是

会遍历脚本所在目录中的.h文件,所以会把脚本第一阶段建立的.h文件显示出来。该方法在重命名和删除

文件时候也在使用。


看官们,在重命名的时候,有个新的知识需要和大家说明一下。name%.*表示把变量值中.前面的内容提取

出来。.后面是*表示匹配。例如:name的值是test1.h.经过提取后会得到test1,.h被舍弃。还有一种

方法:name#*.它表示把变量值中.后面的内容提取出来。例如:name的值是test1.h.经过提取后会得

到h,test1.会被舍弃。该方法在提取文件名,或者文件后缀时很有用。


各位看官们,今天的例子就到此为止,欲知后面还有什么好的例子,且听下回分解。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值