Linux目录下过滤代码文件脚本

脚本如下


在Linux下直接执行即可:

#!/bin/bash
######################################################################
##                                                                  ##
##   遍历指定目录获取当前目录下的二进制文件名(过滤掉原本代码)       ##
##                                                                  ##
######################################################################
 
##递归遍历
echo "script starting."
test_path="$1"
##过滤带后缀文件的列表
list=("c" "cc" "cpp" "java" "xml" "png" "mk" "ac" "h" "bp" "conf" "rc" "am" "txt" "jpg" "sh" "py" "json" "hal" "hpp" "aidl" "cfg" "dat" "mak" "ogg" "flags" \
"template" "key" "ext" "cer" "html" "gitignore" "wav" "js" "css" "zip" "config" "jpeg" "bmp" "acdb" "proto" "tlv" "pst" "der" "rst" "dts" "exe" "xsd" \
"in" "prefs" "classpath" "project" "idl" "min" "stm" "script" "dirs" "install" "db"  "lm" "uim" "uimc" "properties" "qwsp" "pcm" "inl" "TXT" "jack" "sql" \
"list" "prop" "preloadspec" "m4a" "rs" "crt" "attr" "def" "Linux" "sdc" "idc" "gitattributes" "options" "pem" "crl" "clang-format" "bak" "dm" "md" "mk_" \
"suppress" "toc" "mht" "gmm" "yes" "docx" "ttf" "code")
length=${#list[@]}
# 过滤不带后缀的 
list1=("LICENSE" "NOTICE" "Makefile" "README" "SConscript" "RELEASE_NOTES" "API_INFO" "AUTHORS" "CHANGES")
length1=${#list1[@]}
 
traverse_dir()
{
    local 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
}
echo "script finished." 
 
##获取后缀为so或jar或bin的文件
check_suffix()
{
    file=$1
    cnt=0
    for val in ${list[@]}
    do
        if [ "${file##*.}"x != "$val"x ]
        then
            let cnt++
        fi    
    done
    if [ $cnt == $length ]
    then
        cnt1=0
        for val in ${list1[@]}
        do
            if [ "${file##*/}"x != "$val"x ]
            then
            let cnt1++
            fi    
        done
        if [ $cnt1 == $length1 ]
        then
            echo $file >> ./result.txt
        fi    
    fi    
}
 
#需要统计的目录
traverse_dir ${test_path}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值