专栏中心

EEPW首页 > 专栏 > shell遍历指定目录并获取目录下指定后缀的文件

shell遍历指定目录并获取目录下指定后缀的文件

发布人:电子禅石 时间:2020-11-20 来源:工程师 发布文章

linux中常常遇到需要遍历目录及目录下所有子目录获取匹配的文件信息,类似的需求,处理方式有很多。一个应用场合是:生成 在静态库库时  来遍历所有 .o 文件。


#!/bin/bash
######################################################################
##                                                                  ##
##   遍历指定目录获取当前目录下指定后缀(如txt和ini)的文件名            ##
##                                                                  ##
######################################################################
 
##递归遍历
traverse_dir()
{
    filepath=$1
    
    for file in `ls -a $filepath`
    do
        if [ -d ${filepath}/$file ]
        then
            if [[ $file != '.' && $file != '..' ]]
            then
                #递归
                traverse_dir ${filepath}/$file
            fi
        else
            #调用查找指定后缀文件
            check_suffix ${filepath}/$file
        fi
    done
}
 
 
##获取后缀为txt或ini的文件
check_suffix()
{
    file=$1
    
    if [ "${file##*.}"x = "txt"x ] || [ "${file##*.}"x = "ini"x ];then
        echo $file
    fi    
}
 
#测试指定目录  /data_output/ci/history
traverse_dir /data_output/ci/history


说明:

1、 ${file##*.} 

    为提取文件后缀名,其中 ##是贪婪操作符,从左至右匹配,匹配到最右边的.号(点号),移除包含.号(点号)的左边内容。

2、[ "${file##*.}"x = "txt"x ]

    其中x无具体意义,主要为了防止字符串为空时报错。

https://blog.csdn.net/waitfor920/article/details/103583873

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

赛灵思中国通讯第二十三期2006年秋季刊

安森美四大eFuse核心系列发力,驱动汽车电气化革新

嵌入式系统第五讲:ucOS/II实时操作系统RTOS

英飞凌和Flex组装了分区控制器的各个组成部分

TI Zigbee 射频芯片RF4CE 以及RemoTI 开发包

视频 2009-10-16

轻松入门开发ARM程序(为初学者写的入门手册)

MSP430 医疗产品应用

视频 2009-10-16

GigaDevice在香港上市:创始人押注中国记忆未来

网络与存储 2026-01-19

MSP430 电表解决方案

视频 2009-10-16

功率电路进阶教程:固态断路器采用SiC JFET的四个理由

光学研究利用微光产生明亮的LED灯

使用预集成栈简化嵌入式虚拟化

赛灵思中国通讯2007年春季刊

中国科研团队在石版制造技术方面取得了新进展

ADS62C17 数据转换器

高性能系列DSP上TCP2/VCP2协处理器

视频 2009-10-16

功率电路进阶教程:为什么要使用固态断路器?

诺斯罗普·格鲁曼加快DARPA项目下的微电子测试

功率电路进阶教程:SiC JFET 如何实现热插拔控制

嵌入式系统第一讲:实时嵌入式系统设计综述

更多 培训课堂
更多 焦点
更多 视频

技术专区