下面围绕“判断字符串是否以.txt结尾”展开。转变一下也同样适用于“判断字符串是否以.txt开头”。

通用的方法

# 方法一、使用grep命令

#!/bin/sh

str="/path/to/foo.txt"

# 使用if语句
if echo "$str" | grep -q -E '\.txt$'
then
echo "true"
else
echo "false"
fi # 写成一行
echo "$str" | grep -q -E '\.txt$' && echo true || echo false
grep -q -E '\.txt$' <<< "$str" && echo true || echo false

# 方法二、使用expr命令

#!/bin/sh

str="/path/to/foo.txt"

# 使用if语句
if expr "$str" : '.*\.txt$' &>/dev/null
then
echo "true"
else
echo "false"
fi # 写成一行
expr "$str" : '.*\.txt$' &>/dev/null && echo true || echo false

# 方法三、使用case指令

#!/bin/sh

str="/path/to/foo.txt"

case "$str" in
*.txt ) echo "true";;
* ) echo "false";;
esac

# 其他方法

还可以使用AWK、SED,这里就不再介绍了,方法和上面是类似的。

特定于Shell的方法

BASH

#!/bin/bash

# BASH中的正则表达式
[[ "/path/to/foo.txt" =~ .*txt$ ]] && echo "true" || echo "false" # BASH的特殊语法
[[ "/path/to/foo.txt" = *txt ]] && echo "true" || echo "false"

相关文章

「Shell」- 在脚本中,获取脚本所在路径
「Sehll」- 重复字符串

参考文献

How do I do if(string.endsWith("/")) in shell
Bash String Comparison: Find Out IF a Variable Contains a Substring

 

shell判断字符串结尾的更多相关文章

  1. shell 判断字符串是否为数字

    本篇文章主要介绍了"shell 判断字符串是否为数字",主要涉及到shell 判断字符串是否为数字方面的内容,对于shell 判断字符串是否为数字感兴趣的同学可以参考一下. #!/ ...

  2. 用Shell判断字符串包含关系的方法小结

     这篇文章主要给大家介绍了关于用Shell判断字符串包含关系的几种方法,其中包括利用grep查找.利用字符串运算符.利用通配符.利用case in 语句以及利用替换等方法,每个方法都给出了详细的示例代 ...

  3. Shell判断字符串包含关系的几种方法

    现在每次分析网站日志的时候都需要判断百度蜘蛛是不是真实的蜘蛛,nslookup之后需要判断结果中是否包含“baidu”字符串 以下给出一些shell中判断字符串包含的方法,来源程序员问答网站 stac ...

  4. Linux shell 判断字符串为空等常用命令

    1.判断字符串为空 if [ -z "$str" ]; then echo "empty string" fi 2.判断文件是否存在 if [ -f /home ...

  5. 转 Shell判断字符串包含关系的几种方法

    https://blog.csdn.net/rznice/article/details/71086839 Shell中判断字符串包含关系的方法: 1.通过grep来判断:12str1="a ...

  6. 【转载】Shell判断字符串包含关系的几种方法

    http://www.cnblogs.com/ginsonwang/p/5525340.html 下面是直接copy的内容: (本来是不打算copy的,但是每次用到或看的时候都要跳转,感觉挺麻烦的.就 ...

  7. shell 判断字符串是否为空

    #!/bin/bash a="" if [ -n "$a" ] then echo "-n $a : 字符串长度不为 0" else ech ...

  8. shell 判断字符串长度是否不为0

    test.sh #!/bin/bash s1="" if test $s1 ;then echo "length is not zero" else echo ...

  9. shell 判断字符串包含的5种方法

    strA="long string" strB="string" result=$(echo $strA | grep "${strB}") ...

  10. shell 判断字符串长度是否为0

    test.sh #!/bin/bash echo "enter the string:" read filename if test -z $filename ; then ech ...

随机推荐

  1. eUSB是什么/可以干什么?

    eUSB总结 1.什么是eUSB 1.1 eUSB概念 eUSB是原USB物理层上的补充,为了解决USB_phy低压需求的问题而出现的,eUSB可以将信号电平降至1.2V甚至更低,与此同时可以优化电源 ...

  2. Android Qcom USB Driver学习(一)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) USB接口类型 Android终端上常用的USB接口:TypeC(现在的主流),MicroB(以前的设备) ...

  3. 55.父页面通过ifaram嵌套子页面,如何固定子页面菜单

    使用固定定位 :

  4. 云原生周刊:CNCF 2023 年度调查报告 | 2024.4.15

    开源项目推荐 highlight 该项目是一个开源全栈监控平台.其功能包括错误监控.会话重放.日志记录.分布式跟踪等. Helm Compose Helm Compose 是一个 helm 插件,用于 ...

  5. pandas的一些基本操作

    Pandas 是一个开源的数据分析和操作库,它是 Python 编程语言的一个扩展.Pandas 提供了快速.灵活和表达能力强的数据结构,旨在使数据清洗和分析工作变得更加简单易行. 1.为什么要学习p ...

  6. 数据分析(matplotlib pyplot)

    文章目录 1.导入pyplot 库 2.绘出直线图 3.绘出实心点 4.绘出折线图 5.绘制正余弦函数 Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API. P ...

  7. 从零开始学逆向CTF比赛,免费参加,欢迎来玩!

    大家好,我是轩辕. 告诉大家一个好消息:我准备了一次逆向CTF比赛,面向所有人开放,无需购买课程,优秀的小伙伴还有奖励,参赛方式在文末会介绍,欢迎大家一起来玩. 举办这次CTF比赛,是为了检验大家从零 ...

  8. 「模拟赛」多校 A 层联训 16

    比赛链接 A.四舍五入 虽然让找 \(i\),但枚举 \(i\) 很没前途啊,所以考虑找到所有 \(j\) 的个数 发现对于一组合法的 \(i.j\) 需要满足 \(i\in [kj,\ kj+0.5 ...

  9. .NET 全能高效的 CMS 内容管理系统

    前言 推荐一款强大的企业级工具 - SSCMS 内容管理系统. SSCMS 为企业级客户设计,完全开源免费,适用于商业用途且无需支付任何产品或授权费用. 本文将详细介绍 SSCMS 系统的功能.用户界 ...

  10. 8.Kubernetes核心技术Pod

    Kubernetes核心技术Pod Pod概述 Pod是K8S系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在K8S上运行容器化应用的资源对象,其它的资源对象 ...