shell判断字符串结尾
下面围绕“判断字符串是否以.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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2022-03-25 Hutool excel导出
2016-03-25 局部更新listview的问题(只更新某个item)
2016-03-25 漂亮的自制java验证码
2016-03-25 Myeclipse:No projects are available for deployment to this server!
2016-03-25 Java获取时间与系统时间相差8小时终极解决方案
2016-03-25 [转]SpringMVC日期类型转换问题三大处理方法归纳
2016-03-25 utf8乱码解决方案[适合tomcat部署的jsp应用]