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

查找目录下同名但不同后缀名文件的Shell脚本代码攻略

要编写一个Shell脚本来查找目录下同名但不同后缀名的文件,可以按照以下步骤进行:

  1. 获取用户输入的目录路径。
  2. 遍历目录下的所有文件。
  3. 提取文件名和后缀名。
  4. 使用关联数组(associative array)来存储同名文件的后缀名。
  5. 输出同名但不同后缀名的文件。

下面是一个完整的Shell脚本代码示例:

#!/bin/bash

# 获取用户输入的目录路径
read -p \"请输入目录路径: \" directory

# 遍历目录下的所有文件
for file in \"$directory\"/*; do
    # 提取文件名和后缀名
    filename=$(basename \"$file\")
    extension=\"${filename##*.}\"
    filename=\"${filename%.*}\"

    # 使用关联数组来存储同名文件的后缀名
    if [[ -n ${files[$filename]} ]]; then
        files[$filename]+=\" $extension\"
    else
        files[$filename]=$extension
    fi
done

# 输出同名但不同后缀名的文件
for filename in \"${!files[@]}\"; do
    extensions=\"${files[$filename]}\"
    count=$(echo \"$extensions\" | wc -w)
    if [[ $count -gt 1 ]]; then
        echo \"文件名: $filename\"
        echo \"后缀名: $extensions\"
        echo
    fi
done

示例说明

示例一

假设目录路径为/home/user/documents,该目录下有以下文件:

  • file1.txt
  • file1.doc
  • file2.txt
  • file2.pdf
  • file3.txt

运行脚本后,输出如下:

文件名: file1
后缀名: txt doc

文件名: file2
后缀名: txt pdf

脚本找到了同名但不同后缀名的文件file1.txtfile1.doc,以及file2.txtfile2.pdf

示例二

假设目录路径为/home/user/pictures,该目录下有以下文件:

  • image1.jpg
  • image1.png
  • image2.jpg
  • image3.png

运行脚本后,输出如下:

文件名: image1
后缀名: jpg png

脚本找到了同名但不同后缀名的文件image1.jpgimage1.png

这些示例说明了脚本如何在给定目录下查找同名但不同后缀名的文件,并输出它们的文件名和后缀名。你可以根据需要修改脚本以适应不同的情况。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:查找目录下同名但不同后缀名文件的shell脚本代码 - Python技术站

(0)
上一篇 2023年8月5日
下一篇 2023年8月5日

相关文章

  • Mybatis实现ResultMap结果集

    Mybatis是一种优秀的Java持久层框架,主要应用于大型企业级应用系统中。在Mybatis中,ResultMap是一种用于解析SQL查询结果的映射规则,能够方便快捷地将查询结果封装成Java对象。本文将详细讲解如何使用Mybatis实现ResultMap结果集的映射。 什么是ResultMap ResultMap是Mybatis中用于将数据库查询结果和J…

    other 2023年6月26日
    00
  • ONENOTE 使用心得分享

    ONENOTE 使用心得分享攻略 1. 简介 OneNote是一款强大的笔记应用程序,可以帮助用户轻松地记录、整理和共享信息。下面是一些使用OneNote的心得分享,希望对你有所帮助。 2. 基本功能 2.1 笔记本和节 OneNote使用笔记本(Notebook)来组织你的笔记。你可以创建多个笔记本,每个笔记本可以包含多个节(Section)。 示例:创建…

    other 2023年7月28日
    00
  • python在if语句中相当于&&(逻辑与)

    在Python中,if语句中的条件表达式可以使用and运算符来实现逻辑与的效果,这与C语言中的&&运算符类似。以下是详细的攻略: 使用and运算符 在Python中,我们可以使用and运算符将两个条件表达式组合在一起,以实现逻辑的效果。当if语句中的条件表达式使用and运算符时,只有当所有条件都为True时,整个条件表达式才为True。以下是…

    other 2023年5月9日
    00
  • baseadapter基础知识

    BaseAdapter基础知识攻略 BaseAdapter是Android中的一个适配器类,用于将数据绑定到ListView、GridView等控件上。本攻略将介绍BaseAdapter的基础知识,包括BaseAdapter的作用、使用方法、方法等。 BaseAdapter的作用 BaseAdapter的作用是将数据绑定到ListView、GridView等…

    other 2023年5月7日
    00
  • Spring中property-placeholder的使用与解析详解

    这里是关于“Spring中property-placeholder的使用与解析详解”的完整攻略: 什么是property-placeholder property-placeholder是Spring框架提供的一种占位符机制,用来替换配置文件中的占位符,从而将配置文件中的属性注入到bean中。该机制主要用于解决Spring不直接支持属性占位符配置的问题。 如…

    other 2023年6月27日
    00
  • vue3 HighCharts自定义封装之径向条形图的实战过程

    Vue3 HighCharts自定义封装之径向条形图的实战过程 介绍 径向条形图(Radial bar chart)是一种基于极坐标系的柱状图,也称为玫瑰图(Rose chart)或雷达图(Radar chart)。它是非常适合于展现多个变量之间的差异,并且可以在一张图表中显示这些进度条的完成情况。 在本文中,我们将介绍如何使用Vue3和HighCharts…

    other 2023年6月25日
    00
  • iPhone13内存不够怎么解决 iPhone13显示内存不足怎么办

    iPhone 13内存不够的解决方法 如果你的iPhone 13显示内存不足的错误信息,不要担心,有几种方法可以解决这个问题。下面是一些解决iPhone 13内存不够的方法: 1. 清理iPhone 13上的无用数据 清理无用数据是解决内存不足问题的第一步。以下是一些可以清理内存的方法: 删除不需要的应用程序:打开iPhone 13的主屏幕,长按不需要的应用…

    other 2023年8月1日
    00
  • Kotlin Flow操作符及基本使用详解

    Kotlin Flow操作符及基本使用详解 什么是Kotlin Flow Kotlin Flow是基于协程提供的一种异步数据流实现,可以帮助我们实现类似ReactiveX中的数据流的功能,但是更加轻量级和易于使用,适合于在Kotlin代码中使用。Kotlin Flow可以将数据流的操作分发到协程上,同时可以避免回调地狱的问题,让代码更加简洁。 Flow的基本…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部