查找目录下同名但不同后缀名文件的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日

相关文章

  • MYSQL主从不同步延迟原理分析及解决方案

    MYSQL主从不同步延迟问题是很常见的,下面将会从原理、分析以及解决方案等方面作详细介绍。 问题原理 当我们使用MYSQL主从复制时,主库(MySQL)在接收到新数据时,将新数据写入二进制日志(binary log),从库(MySQL)连接到主库(MySQL)并获取binary log中的数据,实现数据同步。如果从库(MySQL)无法及时获取到binary …

    other 2023年6月26日
    00
  • python中的单向链表实现

    实现链表需要定义节点类,节点类包含每个节点的值和指向下一个节点的指针。链表类需要有一个指向链表头节点的指针。 定义节点类 节点类包含__init__方法和__str__方法。 __init__方法用于初始化节点的值和指针。 __str__方法用于打印节点。 class Node: def __init__(self, value): ""…

    other 2023年6月27日
    00
  • iphone内存如何清理 苹果手机内存不足的解决方法

    iPhone内存清理攻略 苹果手机内存不足时,可以采取以下方法来清理内存并解决问题。本攻略将详细介绍这些方法,并提供两个示例说明。 方法一:关闭不必要的后台应用程序 在iPhone上双击Home按钮或者在iPhone X及更高版本上从底部向上滑动,打开多任务管理器。 在多任务管理器中,向左或向右滑动以查看所有后台应用程序。 找到不必要的应用程序,并向上滑动关…

    other 2023年8月1日
    00
  • 使用汇编实现字符串的大小写转换

    使用汇编实现字符串的大小写转换攻略 本攻略将详细介绍如何使用汇编语言来实现字符串的大小写转换。下面是完整的攻略过程,包括两个示例说明。 步骤1:准备工作 在开始之前,确保你已经安装了适当的汇编工具,例如NASM(Netwide Assembler)。你还需要一个文本编辑器来编写汇编代码。 步骤2:编写汇编代码 首先,创建一个新的汇编文件,例如convert_…

    other 2023年8月16日
    00
  • SpringBoot之QueryDsl嵌套子查询问题

    Spring Boot之QueryDsl嵌套子查询问题攻略 简介 QueryDsl是一个用于构建类型安全的SQL查询的框架,它提供了一种流畅的API来构建查询表达式。在Spring Boot中使用QueryDsl可以简化数据库查询操作。然而,当需要进行嵌套子查询时,可能会遇到一些问题。本攻略将详细介绍如何解决Spring Boot中QueryDsl嵌套子查询…

    other 2023年7月28日
    00
  • Sql server端口未打开连接不上的解决方案

    当你尝试连接Sql server数据库时,如果出现连接不上的问题,其中一个最常见的原因是端口未打开。这时我们需要进行下面的操作来解决问题。 检查Sql server端口是否开启 首先要检查Sql server所在的计算机的防火墙是否有开启相关的端口,如果数据库服务器安装在本地,则需要检查本地的防火墙设置,如果是远程服务器,则需要检查远程服务器的防火墙设置。 …

    other 2023年6月26日
    00
  • GTA5 PC版右键闪退怎么办_开车途中点击右键闪退解决

    以下是“GTA5 PC版右键闪退怎么办_开车途中点击右键闪退解决”的完整攻略: 问题描述 在GTA5 PC版游戏中,在开车途中点击右键时会出现闪退的问题,这给玩家带来了不少麻烦。那么,该如何解决这个问题呢? 解决方法 方法1:修改注册表 在Windows系统中,有时候右键菜单过于复杂或者安装的软件太多会导致右键菜单出现问题。因此,我们需要修改注册表来修复这个…

    other 2023年6月27日
    00
  • Ubuntu系统下扩展LVM根目录的方法

    以下是Ubuntu系统下扩展LVM根目录的详细攻略: 1. 确认LVM分区 在扩展LVM根目录之前,我们需要确认LVM分区是否正确。可以使用以下命令查看: sudo fdisk -l 其中,LVM分区的标志是Linux LVM。如果没有这个标志的话,则需要先创建LVM分区。 2. 创建物理卷 首先需要将新硬盘划分为一个物理卷,并加入LVM卷组。我们用设备/d…

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