使用shell脚本判断文件后缀的方法实例

yizhihongxing

使用Shell脚本判断文件后缀的方法有很多种,本攻略将向您展示两种常用方法。

方法一:使用shell内置变量${VAR##*CHAR}

使用该方法,只需在Shell命令中嵌入一个${VAR##*CHAR},其中CHAR指的是我们需要查找的字符或子串,VAR指的是要判断的文件名或路径。如果文件名以指定的字符或子串结尾,则返回空字符串。我们可以根据返回值是否为空判断文件是否以指定字符或子串结尾。

#!/bin/bash
filename=$1
suffix="jpg"
if [ -n "${filename##*$suffix}" ]; then
    echo "File $filename is not a jpg file."
else
    echo "File $filename is a jpg file."
fi

以上代码中,首先获取用户输入的文件名并保存到变量filename中。然后指定要判断的文件后缀名为jpg。在if语句中使用${filename##*$suffix}判断文件名是否以jpg结尾,如果不是,说明该文件不是一个jpg文件,输出提示信息;否则说明该文件是jpg文件,同样输出提示信息。

方法二:使用awk命令

另一种方法是使用awk命令,该命令最初设计是基于处理文本文件的,但它也可以用来处理一些简单的任务,例如提取文件名中的后缀。

#!/bin/bash
filename=$1
suffix=$(echo $filename | awk -F. '{print $NF}')
if [ "$suffix" != "jpg" ]; then
    echo "File $filename is not a jpg file."
else
    echo "File $filename is a jpg file."
fi

上述代码中,我们使用awk命令分割文件名字符串,并获取最后一个分割出来的字符串即为文件后缀。如果该后缀不是jpg,说明该文件不是一个jpg文件,输出提示信息;否则,说明该文件是一个jpg文件,同样输出提示信息。

总的来说,以上两种方法都可以很方便地判断文件是否符合指定的格式,根据实际需求选择使用即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用shell脚本判断文件后缀的方法实例 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • 华为路由AX3怎么重启? 华为路由AX3定时重启的技巧

    针对华为路由AX3的重启和定时重启操作,可以参考以下攻略: 华为路由AX3重启操作 方法一:通过路由管理页面进行重启 打开浏览器,输入网关地址(默认为:192.168.3.1)。 输入登录账号和密码,进入路由器的管理页面。 点击“重启”选项,弹出“确认重启”提示框。 点击“确定”,等待路由器自动重启即可。 方法二:通过硬件按钮进行重启 在华为路由AX3背面,…

    other 2023年6月26日
    00
  • Win10开发必备:Visual Studio 2015部分官方ISO镜像下载地址

    Win10开发必备: Visual Studio 2015部分官方ISO镜像下载地址攻略 1. 简介 在Win10开发中,Visual Studio 2015是一个非常重要的开发工具。本攻略将详细介绍如何获取Visual Studio 2015的官方ISO镜像下载地址。 2. 步骤 2.1. 打开官方下载页面 首先,打开Visual Studio官方网站,进…

    other 2023年8月4日
    00
  • java学习技术分享:java中的原子操作

    Java学习技术分享:Java中的原子操作 在Java中,原子操作是指不可被中断的操作,即使在多线程环境也能保证操作的原性。本文将详细介绍Java中的原子操作,包括两个示例说明。 1. 原子的概念 原子是指不可被中断的操作,即使在多线程环境下也能保证操作的原子性。在Java中,子操作通常用于多线程环境下的共享变量,以避免数据竞争和线程安全问题。 Java中提…

    other 2023年5月9日
    00
  • swot自我分析

    SWOT自我分析 SWOT(Strengths、Weaknesses、Opportunities、Threats)自我分析是指通过对自身优势、劣势、机会和威胁的分析,从而找到发展的方向和提高的方法。在个人职业发展、创业、求职面试等方面有着重要的作用。 分析自身优势 在分析自身优势时,需要考虑:自己擅长的技能、经验、知识、能力,以及工作或学习中曾取得的成就。只…

    其他 2023年3月28日
    00
  • angular中实现控制器之间传递参数的方式

    ny) { this.sharedData = data; } getSharedData() { return this.sharedData; }} ### 步骤二:在发送参数的控制器中设置参数值 在发送参数的控制器中,通过依赖注入方式引入共享服务,并使用`setSharedData`方法设置参数值。 “`typescript import { Com…

    other 2023年8月21日
    00
  • 有关perl的内置特殊变量介绍

    Perl内置特殊变量介绍攻略 Perl是一种功能强大的编程语言,它提供了许多内置的特殊变量,这些变量在编写Perl脚本时非常有用。下面是一些常用的Perl内置特殊变量的介绍和示例说明。 1. $_ $_是Perl中最常用的特殊变量之一,它表示默认变量。当没有指定变量时,Perl会默认使用$_。它在循环和许多内置函数中经常使用。 示例1:在循环中使用$_ my…

    other 2023年8月9日
    00
  • C语言数组超详细讲解下篇扫雷

    C语言数组超详细讲解下篇扫雷 一、背景 扫雷作为一个经典的小游戏,其实是使用C语言数组实现的。在本文中,我们将深入探讨如何使用数组来实现扫雷游戏。 二、数组的定义与初始化 在C语言中,数组是一种数据结构,可以容纳一定数量的相同类型的数据。 首先,我们需要定义和初始化一个二维数组来存储扫雷棋盘的信息,例如: #define ROWS 10 #define CO…

    other 2023年6月26日
    00
  • PHP中trait的使用和同时引入多个trait时同名方法冲突的处理方法

    让我来为你详细讲解一下“PHP中trait的使用和同时引入多个trait时同名方法冲突的处理方法”的完整攻略。 1. 什么是trait Trait是PHP5.4.0版本引入的新特性,它的作用是为了解决单继承问题。trait可以在不破坏类继承关系的情况下,为一个类添加一些方法和属性。trait类似于类,但它不能被实例化,也不能独立存在,它只能被其他类所包含使用…

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