1 我们都知道shell脚本能够做很多的事,今天刚好一个队友要我写个脚本求某个目录下所有java文件的行数总和
2 ok,为了方便,我把这个目录放到了当前的家目录下,路径为/home/chenguolin/src
3 我在家目录下建了一个s.sh的脚本,代码如下,等等来分析代码的意思
#!/bin/bash
function ergodic(){
for file in ` ls $1 `
do
if [ -d $1"/"$file ]
then
ergodic $1"/"$file
else
wc -L $1"/"$file | cut -d' ' -f1 >> /home/chenguolin/out
fi
done
}
INIT_PATH="/home/chenguolin/src"
ergodic $INIT_PATH
4 分析一下代码的意思
1 第一行是一个常规的格式,我们要指定这个脚本是由bash来执行
2 第二行是一个脚本的函数
3 第三行是一个for循环,shell里面把反引号里面的命令认为是系统命令,那么代码的意思就是循环枚举这个目录下的文件,$1是指函数的第一个参数
4 第四行跳过,相信大家都懂
5 第五行是一个判断语句,如果当前文件是一个目录
6 if的结构then
7 递归执行这个函数,传入当前目录
8 如果文件不是目录,那么我们执行下一行
9 wc -L $1"/"$file 这个命令是求当前这个文件的行数,没有包括空行
| cut -d' ' -f1
这个命令是管道的应用,通过前面得到的结果我们去重新定义cut的分割符为空格,并且只显示第一列
>> /home/chenguolin/out 把前面得到的内容重定向到家目录下的out文件
10 结束for循环
11 括号,呵呵呵
12 初始化要遍历的目录的路径
13 函数调用并传入这个路径
5 执行
1 首先我们先给这个文件s.sh一个执行权限,先进入家目录
cd ~
chmod u+x s.sh
2 执行文件
./s.sh
3 得到out的内容(我们这边要保证out在执行前是空的内容),可以利用cat来查看
4 我们得到的out内容
5 那么我们得到了每一个文件的行数,现在你是不是想直接手算了啊?
如果真这么想那么你就呵呵呵呵呵了
我们可以利用Python来求出这个文件的总和,我就在家目录下建立一个p.py的Python文件
下面直接贴代码了
#!/bin/python
sum = 0
while True:
try:
str = raw_input()
except:
break
num = int(str)
sum += num
print sum
6 进入到家目录下直接利用重定向来运行p.py
python p.py < out
分享到:
相关推荐
采用shell脚本实现遍历文件并将文件打印到标准输出的小脚本,主要是学习。
主要介绍了Shell脚本实现从文件夹中递归复制文件,本文脚本实现从十层左右的文件夹中复制所有文件到一目录中,需要的朋友可以参考下
今天小编就为大家分享一篇利用shell脚本遍历文件夹内所有的文件并作整理统计的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
用shell写的递归遍历目录的脚本,脚本实现递归遍历指定目录,打印目录下的文件名。 实例1: 代码如下:#!/bin/shfunction scandir() { local cur_dir parent_dir workdir workdir=$1 cd ${workdir} if [ ${...
在将windows上的jsp网页移植到linux环境中时,发现一个个的转换编码及修改默认编码类型太慢,写此脚本进行尝试文件遍历~ 好久不写,手生了。 代码如下: #!/bin/bash # # SPATH=”/root/chengji/WebRoot” DPATH=”/...
今天小编就为大家分享一篇关于Shell脚本用for循环遍历参数的方法技巧,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
主要介绍了Shell脚本遍历一个日期范围实例,本文直接给出实现代码,需要的朋友可以参考下
本篇文章主要介绍了shell 遍历文件夹内所有文件并打印绝对路径,具有一定的参考价值,有兴趣的可以了解一下。
本文主要给大家介绍了关于使用Shell脚本循环读取文件每一行的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 一、使用for循环 for line in `cat filename` do echo $line done ...
平时写shell脚本也经常遍历数组,但是一下没答上来,被鄙视了。 所以平时学习还是好好总结吧,不能每次都问度娘谷爷。IT 知识体系较为庞大,细节的东西也太多,平时遇到问题应该的多总结记笔记。 linux 中定义一个...
shell脚本用于遍历指定目录下的所有文件,对指定目录下的所有文件进行压缩,便于linux中大文件导出
shell中获取n天前的日期,使用shell获取当前日期n天之前的日期
#shell脚本完成hadoop的集群安装 #步骤: #1.安装虚拟机,关闭防火墙、selinux #2.ssh免密码,编辑hosts文件 #3.安装JDK #4.安装hadoop #5.修改配置文件 #6.分发hadoop程序到各个节点 #7.启动集群
完美的Linux脚本教程,从基础的注释、回显、流程控制到高级的函数。带有几个实例,如遍历当前目录下的文件。