linux下递归读取文件
来源:互联网 发布:codol过一会就数据异常 编辑:程序博客网 时间:2024/06/05 04:28
转http://www.jb51.net/article/48832.htm
用shell写的递归遍历目录的脚本,脚本实现递归遍历指定目录,打印目录下的文件名。
实例1:
复制代码 代码如下:
!/bin/sh
function scandir() {
local cur_dir parent_dir workdir
workdir=
if [
fi
for dirlist in $(ls ${cur_dir})do if test -d ${dirlist};then cd ${dirlist} scandir ${cur_dir}/${dirlist} cd .. else echo ${cur_dir}/${dirlist} fidone
}
if test -d
elif test -f $1
then
echo “you input a file but not a directory,pls reinput and try again”
exit 1
else
echo “the Directory isn’t exist which you input,pls input a new one!!”
exit 1
fi
实例2:递归读取目录及其子目录
复制代码 代码如下:
#! /bin/bashfunction read_dir(){ for file in `ls $1` do if [ -d $1"/"$file ] //注意此处之间一定要加上空格,否则会报错 then read_dir $1"/"$file else echo $1"/"$file fi done}
测试目录 test
read_dir test
这样给test.sh加上执行权限即可执行
复制代码 代码如下:
chmod +x test.sh
sh test.sh
到此即可通过传递参数来读取目录文件了。
实例3:
复制代码 代码如下:
递归实现各个子目录孙目录……
!/bin/bash
modify.func
doit() //处理当前目录下的非目录文件,忽略目录文件
{
oldname=ls | grep "$1$"
for name in
then :
else
basename=echo $name | awk -F "." '{print $1}'
newname=”
echo -e “
count=expr ${count} + 1
fi
done
return 0
}
do_recursive() //从当前目录开始,递归处理各目录
{
doit
for filename in ls
do
if [ -d “
do_recursive
cd ..
fi
done
return 0
}
modify() //处理当前目录,并报告结果,这个相当于主函数,也可以直接调用do_recursive
{
PARAMS=2
if [ # -nePARAMS ]
then
echo “usage: mv_to .suf1 .suf2”
return 1
fi
count=0
do_recursive
echo “complete! $count files have been modified.”
return 0
}
- linux下递归读取文件
- Linux下递归读取文件数量
- 递归读取文件夹下所有文件
- 递归读取文件夹下的文件
- 递归读取xml 文件;
- Java 递归读取文件
- 递归读取相应路径下的所有文件
- 递归读取某个路径下的所有文件
- javascript使用promise递归读取目录下所有文件
- 递归读取文件夹下的文件,代码怎么实现
- PHP递归读取一个路径下的目录及文件
- java递归读取目录下的所有文件
- 递归读取文件夹下的文件,代码怎么实现
- Linux下递归修改文件时间戳
- linux下递归删除文件或目录
- Linux下Python递归文件目录
- linux下C++读取文件,获取文件大小。
- Linux下读取Ini文件类
- OC 中判断字符串是否为空字符
- Memcache-Java-Client-Release源码阅读(之四)
- leetcode-292. Nim Game
- 深度学习基础(三)—— 权值矩阵的初始化
- ContentProvider内容提供者
- linux下递归读取文件
- 码农小汪-非常不安逸 怎么我写的注解没有自动给我生成时间呢!javadoc 配置起来非常的简单
- CMEM Overview
- 主成分分析(Principal Component Analysis)
- java.lang.NoSuchMethodError: org.apache.commons.pool.impl.GenericObjectPool.setMinIdle(I)V
- ZOJ_1151
- java爬虫学习日记1-基本爬虫原理介绍
- 字符串全排列
- 关于scanf与gets的区别