• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    查找目录下同名但不同后缀名文件的shell脚本代码

    因为后台录入的同事,上传文件的时候,给文件取了相同的名字,但不同的后缀名,由于文件路径非常深,大概十层左右,每一层又有几十个文件,所以人工找起来非常麻烦,所以写了个脚本,帮他们实现查找指定目录下所有子目录及文件,找出相同文件名,不同后缀的文件,然后,手动保留其中一个。

    复制代码 代码如下:

    #!/bin/bash 
    #判断一下脚本参数的问题 
    if [ $# -ne 1 ];then 
       echo "Usage find_same.sh direcroty" 
       exit 
    fi 
    find $1 -type d > /tmp/dir.txt 
    #将所有需要查询的目录本身和子目录的名字存储在一个临时文件里 
    #对每个目录进行比较查询 
    while read dir 
    do 
         find $dir -maxdepth 1 -type f > /tmp/file.txt 
         #将当前目录下的所有文件存储在临时文件里 
         awk -F '/' '{print $NF}' /tmp/file.txt | awk -F '[.]' '{print $1}'| sort | uniq -d > /tmp/filename.txt 
         #把文件名字取出来,有同样名字的就把名字放到/tmp/filename.txt里 
         line=`wc -l /tmp/filename.txt | awk '{print $1}'` 
         #判断一下该文件里一共有多少行,每一行就是一个重名的文件名 
         #输出 
         echo "The directory $dir including same name file: " 
         if [ $line -ge 1 ] ; then 
            while read name 
            do 
            filename=`grep $name /tmp/file.txt` 
                    echo "$filename" 
                    echo $filename >> /tmp/samefile.txt 
                    #所有的记录存放在这个文件里 
            done /tmp/filename.txt 
          fi 
    done /tmp/dir.txt

    模拟测试:

    linux-8hij:/tmp/test # ll
    total 4
    -rw-r--r-- 1 root root    0 Mar  9 02:04 1.png
    -rw-r--r-- 1 root root    0 Mar  9 02:04 1.txt
    drwxr-xr-x 2 root root 4096 Mar  9 02:05 test1
    linux-8hij:/tmp/test/test1 # ll
    total 0
    -rw-r--r-- 1 root root 0 Mar  9 02:05 11.jpg
    -rw-r--r-- 1 root root 0 Mar  9 02:05 11.log
    -rw-r--r-- 1 root root 0 Mar  9 02:05 2.log

    运行结果:

    linux-8hij:/tmp # ./find_name.sh /tmp
    The directory /tmp including same name file:
    The directory /tmp/.ICE-unix including same name file:
    The directory /tmp/.X11-unix including same name file:
    The directory /tmp/gconfd-root including same name file:
    The directory /tmp/gconfd-root/lock including same name file:
    The directory /tmp/gpg-PIEU09 including same name file:
    The directory /tmp/test including same name file:
    /tmp/test/1.txt
    /tmp/test/1.png
    The directory /tmp/test/test1 including same name file:
    /tmp/test/test1/11.jpg
    /tmp/test/test1/11.log

    查看记录:

    linux-8hij:/tmp # cat /tmp/samefile.txt
    /tmp/test/1.txt /tmp/test/1.png
    /tmp/test/test1/11.jpg /tmp/test/test1/11.log

    通过这个脚本可以实现指定目录下同名但不同后缀名的查找,可以拓展为删除指定的文件的脚本,觉得很实用,分享一下

    您可能感兴趣的文章:
    • shell对比文件内容脚本分享
    • 批量转换目录下文件编码的shell脚本代码
    • linux下保留文件系统下剩余指定数目文件的shell脚本
    • shell去掉文件中空行(空白行)的方法详解
    • shell判断文件,目录是否存在或者具有权限的代码
    • 使用ShellClass获取文件属性详细信息的实现方法
    • 判断文件是否存在的shell脚本代码
    • 合并一个文件夹下多个文件内容的单行shell命令
    • 在指定目录查找指定后缀文件的shell脚本代码
    • shell查找当前目录下大于1M的文件的三种方法分享
    • 后台实时分流文件的shell脚本
    • 找出文件中包含指定字段的文件的shell脚本
    • Visual Style中的shellstyle.dll文件修改方法
    • Byshell后门:无进程无DLL无硬盘文件
    • shell替换文件中的文件路径脚本分享
    上一篇:在指定目录查找指定后缀文件的shell脚本代码
    下一篇:SED单行脚本快速参考(流编辑器)第1/2页
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    查找目录下同名但不同后缀名文件的shell脚本代码 查找,目,录下,同名,但,不同,