linux遍历目录删除指定文件,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法-linux删除文件夹...
本篇文章扣丁学堂Linux培训小编给读者们分享一下利用shell脚本遍历文件夹内所有的文件并作整理统计的方法,文章具有很好的参考价值,感兴趣的小伙伴就随小编来了解一下吧。
环境: Ubuntu下采用shell脚本实现
案例简述:文件夹内有许多子文件夹,这里需要自动读取所有的文件,包括他们的地址和文件名。通过观察文件名的规律,按照一定的规则裁剪出文件名的某一部分,该部分为数字,则根据数字的大小统计该文件夹内文件在各个数据段的数量。
1、这里写一个函数,实现对文件夹内所有文件名的读取,采用的方法是递归!#!/bin/bash
#folder="./test"
function readfile ()
{
#这里`为esc下面的按键符号
for file in `ls $1`
do
#这里的-d表示是一个directory,即目录/子文件夹
if [ -d $1"/"$file ]
then
#如果子文件夹则递归
readfile $1"/"$file
else
#否则就能够读取该文件的地址
echo $1"/"$file
#读取该文件的文件名,basename是提取文件名的关键字
echo `basename $file`
fi
done
}
#函数定义结束,这里用来运行函数
folder="./test"
readfile $folder
2、这里实验了初始化变量和变量赋值#!/bin/bash
a=002
#打印a的值
echo $a
#注意这里赋初始值不能有空格
b=20
c=30
#注意这里[]和符号及字母之间一定要有空格,否则错误!
#这里shell脚本的逻辑运算-a表示与运算,-o表示或运算,!表示否运算
#-lt表示小于,-gt表示大于,-eq表示等于,-ne表示不等于,-le表示小于等于,-ge表示大于等于
if [ $a -lt $b -a $a -gt $c ]
then
#这里赋值注意两个括号,等号两边不能留有空隙
a=$(($a + 2))
a=$(($a + 1))
a=$(($a+ 4))
echo "hehe!"
elif [ $a -lt $b ]
then
echo $(($a + 100))
a=$(($a + 12))
echo "a is:"$a
echo "hello world!"
else
echo "i dont know"
fi
3、综合实验#!/bin/bash
#echo "start..."
#define a function to read all the files in the folder
#赋初始值
a10=0
a20=0
a30=0
a40=0
a50=0
a60=0
a70=0
#定义读取文件名的函数
function readfile ()
{
for file in `ls $1`
do
if [ -d $1"/"$file ]
then
#这里采用递归的方法来读取文件名
readfile $1"/"$file
else
#这一步使得temp变量获得文件名
temp=`basename $file`
#echo $temp
#这里需要注意##*。。表示删除字符串最右边。。及其左边所有内容
var=${temp##*M}
#%。。*表示删除字符串左边的。。及其右边的内容!两个%%则表示最左边
var1=${var%.*}
var2=${var1%a*}
var3=${var2%b*}
var4=${var3%c*}
var5=${var4%d*}
var6=${var5%e*}
var7=${var6%f*}
var8=${var7%g*}
#echo $var8
#if 和括号之间必须有空格
if [ $var8 -le 10 ]
then
a10=$(($a10 + 1))
elif [ $var8 -gt 10 -a $var8 -le 20 ]
then
a20=$(($a20 + 1))
elif [ $var8 -gt 20 -a $var8 -le 30 ]
then
a30=$(($a30 + 1))
elif [ $var8 -gt 30 -a $var8 -le 40 ]
then
a40=$(($a40 + 1))
elif [ $var8 -gt 40 -a $var8 -le 50 ]
then
a50=$(($a50 + 1))
elif [ $var8 -gt 50 -a $var8 -le 60 ]
then
a60=$(($a60 + 1))
else
a70=$(($a70 + 1))
fi
fi
#echo $var8
done
#echo $a40
}
folder="/home/cc/Age/data/MORPH"
readfile $folder
#打印出每个数字段的个数
echo $a10
echo $a20
echo $a30
echo $a40
echo $a50
echo $a60
echo $a70
这里将该脚本保存为1.sh,在执行的时候如果用指令sh 1.sh则会报里面内容或者语法出错。笔者为此迷惑了很久,最终查找资料找到的解决办法是:
a.首先,使sh文件为可执行文件,命令: chmod +x 1.sh;
b.然后在终端直接执行./1.sh就可以执行。
想要了解更多关于Linux开发方面内容的小伙伴,请关注扣丁学堂Linux培训官网、微信等平台,扣丁学堂IT职业在线学习教育有专业的Linux讲师为您指导,此外扣丁学堂老师精心推出的Linux视频教程定能让你快速掌握Linux从入门到精通开发实战技能。
Pyhon基础课程:https://ke.qq.com/course/327534?flowToken=1008607 【扫码进入Python全栈开发免费公开课】
H5基础课程:https://ke.qq.com/course/320523?flowToken=1008606【扫码进入HTML5前端开发VIP免费公开课】
注:点击(了解更多)进入课程直播间
linux遍历目录删除指定文件,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法-linux删除文件夹...相关推荐
- linux 循环显示所有的sh.*文件.,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法...
环境: Ubuntu下采用shell脚本实现 案例简述:文件夹内有许多子文件夹,这里需要自动读取所有的文件,包括他们的地址和文件名.通过观察文件名的规律,按照一定的规则裁剪出文件名的某一部分,该部分为 ...
- linux脚本调用db2存储过程,LINUX定时执行含有DB2存储过程的SHELL脚本
<LINUX定时执行含有DB2存储过程的SHELL脚本>由会员分享,可在线阅读,更多相关<LINUX定时执行含有DB2存储过程的SHELL脚本(6页珍藏版)>请在人人文库网上搜 ...
- linux中利用shell脚本条件执行linux命令
linux中利用shell脚本条件执行命令 在linux环境中,我们总会有一些命令需要经常用,例如经常跳转到某些目录下或者执行某些命令,输入一连串的命令是很烦的,此时我们可以预先写一些脚本然后根据我们 ...
- 解决Linux下无法利用shell脚本启动conda虚拟环境问题
解决Linux下无法利用shell脚本启动conda虚拟环境问题 问题 直接在脚本中激活conda环境时遇到了一个问题 解决 查看.bashrc文件 .bashrc文件在 /home/用户名 里面,因 ...
- 利用shell脚本将json文件导入es
现要将保存在一个目录下所有后缀名为json文件导入es集群,每个json文件中都按回车行分隔的json数据,下面是利用shell脚本完成此功能的代码. 在运行脚本之前,先创建索引. [root@nod ...
- SHELL脚本 遍历文件夹下所有文件以及子文件夹
SHELL脚本 遍历文件夹下所有文件以及子文件夹 dir 要设置为局部变量 如果设置为全局变量 在func递归时传入的参数 会改变 dir的值,将导致之后的文件目录错误(为更改后的dir值) 当前目录 ...
- linux shell ddos木马,利用Shell 脚本解决DDOS攻击问题
思路:主要利用 awk ,if结构,sort,uniq #!/bin/bash FilePath="access.log" awk '{print $1}' $FilePath | ...
- Shell脚本遍历指定网段的在线ip
Shell脚本遍历指定网段存活 ip,检测其是否可以ping通- #!/bin/sh# IP 从 1 遍历到 254 for IP in {1..254};do# 指定网段,遍历 ip 列表 ping ...
- php批量替换文件内容,Shell脚本实现批量替换文件内容
Shell脚本实现批量替换文件内容 今天同事发现内部服务器的硬盘空间不够了,上面有很多备份,我又不能删除,重新找了个320g的硬盘挂载了上,想以后shell脚本下的备份都转移到新硬盘上,给老硬盘腾出空 ...
最新文章
- vsphere6.7+Horizon7.8推送桌面遇到的一些问题
- 1.VMware安装3个ubuntu14.05
- 5个须警惕的数据库设计错误
- K8S——单master节点和基于单master节点的双master节点二进制部署(本机实验,防止卡顿,所以多master就不做3台了)
- 程序员必看!Android面试10大知识点总结宝典助你通关!年薪50W
- pmp中ram和raci的区别_【PMP知识点总结】采购流程、采购合同的类型、采购合同的条款...
- devops_您无法购买DevOps
- linux下卸载之前安装的qt4和qt5
- winform中HSrollbar如何控制thumb滑块的宽度呢
- TikZ从零开始(一)——实例之受力分析图绘制
- 42所双一流大学图书馆公众号
- 期刊评价查询+机器人领域期刊排名
- html字体颜色渐变色,css颜色渐变实例:css3文字颜色渐变的实现方法
- 记录每日习题(35)
- 计算机个人市场调查实验报告,市场调查实验报告(一)
- 蓝桥杯五4史丰收速算
- manjaro linux树莓派,manjaro
- TensorFlow在win10上安装--精简教程
- 朴素Bayes组合-集成分类器
- 安捷伦示波器DSO-X3034A进入不了测试界面是什么原因?
热门文章
- 关于笔记本蓝屏问题的解决方法
- 「亲身经历」如何避免离职员工带来的损失
- java -jar cvf_jar cvf 方式打包java web项目
- unity之代码修改Shader参数值
- python利用opencv去除图片logo_python 基于opencv去除图片阴影
- contos 7新手上路之四:使用与美化
- dos下查询网络内的计算机名,dos下查看ip_dos下查看ip地址_dos查看局域网ip_dos命令查本机ip的命令...
- matlab 三维图像投影,matlab – 3D平面上的三维灰度体积投影
- r5 5600g评测
- 计算机毕业设计SSM房屋中介管理信息系统【附源码数据库】