bash模式和模式匹配

bash模式和模式匹配

  • ${variable#pattern}
    如果模式匹配变量取值的开头,删除最短匹配部分,返回其余部分
  • ${variable##pattern}
    如果模式匹配变量取值的开头,删除最长匹配部分,返回其余部分
  • ${variable%pattern}
    如果模式匹配变量取值的结尾,删除最短匹配部分,返回其余部分
  • ${variable%%pattern}
    如果模式匹配变量取值的结尾,删除最长匹配部分,返回其余部分

一个处理文件的样例:

${path} = /home/fuzl/book/long.file.name
${path##/*/}  = long.file.name
${path#/*/}  = fuzl/book/long.file.name
${path%%.*}  = /home/fuzl/book/long
${path%.*}  = /home/fuzl/book/long.file

bash模式和模式匹配

时间: 2024-10-12 04:22:49

bash模式和模式匹配的相关文章

oc kvc的模式:匹配搜索模式(模式匹配)、装包解包

按照一定规则使用匹配模式在目标空间进行搜索,然后执行相应操作: 运行时系统将kvc的运行机制解释为模式匹配,将值的兼容性问题解释为装包解包问题 一.模式匹配 The default implementation of the NSKeyValueCoding protocol provided by NSObject maps key-based accessor calls to an object’s underlying properties using a clearly defined

bash脚本编程之字符串操作

字符串操作之一:测试变量存在性 ${varname:-word} 如果varname存在且非null,返回其值,否则返回word ${varname:=word} 如果varname存在且非null,返回其值,否则将其设置为word,然后返回其值 ${varname:?message} 如果varname存在且非null,返回其值,否则打印varname:后跟message,并退出当前命令或脚本 ${varname:+word} 如果varname存在且非null,返回word,否则返回null

Windows 10上快速尝鲜bash on Ubuntu

今年微软Build 2016大会最让开发人员兴奋的消息之一,就是在Windows上可以原生运行Linux bash,对于非开发人员来讲,可能不知道这意味着什么,而对于开发人员来说,意味着Windows弥补了相比于MAC OS的终端的短板,你可以运行你熟悉的Linux bash,python,perl,使用一些Linux下的library……而不需要再安装一个Cygwin或者,安装一个虚拟机来跑Linux了. 具体新闻请参考: http://www.cnbeta.com/articles/4880

模式匹配-正则表达式

主要内容:匹配内容,匹配模式,实现 Java1.4起,Java核心API就引入了java.util.regex程序包,它包括两个类:Pattern和Matcher. Pattern是对正则表达式进行编译,得到正则表达式的表现模式. Matcher利用Pattern得到的表现模式进行模式匹配. Pattern类的方法简述 方法 说明 static Pettern compile(String regex,int flag) 编译模式,参数regex表示输入的正则表达式,flag表示模式类型(Pat

【深夜急报,Win10下的Linux子系统之Bash】

[在Windows下进行的编程人员,你真的需要学习下Linux] 手册:<Linux 命令手册(特洛伊版2.0)> 链接: https://pan.baidu.com/s/1skrVSvV 密码: tmf2 附Bash 手册: Shell编程手册.chm 百度网盘:http://pan.baidu.com/s/1dFI1UOL -----------------------------割了---------------------------------------------- 姑且 不说B

图解字符串的朴素模式匹配算法

复习串的朴素模式匹配算法 模式匹配 : 子串定位运算,在主串中找出子串出现的位置. 在串匹配中,将主串 S 称为目标(串),子串 T 称为模式(串).如果在主串 S 中能够找到子串 T, 则称匹配成功,返回 第一个 和 子串 T 中 第一个字符 相等 的 字符 在主串 S 中的 序号,否则,称匹配失败,返回 0. 算法思想: 从主串 S 的第 pos 个字符起和模式 T 的第一个字符比较之,若相同,则两者顺次的去比较后续的每一个字符,否则从主串 S 的下一个字符起再重新和模式 T 的字符比较之.

scala 模式匹配详解 3 模式匹配的核心功能是解构

http://www.artima.com/scalazine/articles/pattern_matching.html这篇文章是odersky谈scala中的模式匹配的一段对话,我做了部分片段翻译(不是连贯的): 模式可以嵌套,就像表达式嵌套,你可以定义深层的模式,通常一个模式看起来就像一个表达式.它基本上就是同一类事情.它看起来像一个复杂的对象树构造表达式,只是漏掉了new关键字.事实上在scala当你构造一个对象,你不需要new关键字然后你可以在一些地方用变量做站位符替代对象树上实际的

查询反模式 - 全文搜索

一.目标:全文搜索 任何存储文本的应用都有针对这个文本进行单词或词组搜索的需求.我们使用数据库存储越来越多的文本数据,同时也需要搜索速度越来越快.Web应用尤其需要高性能和高扩展性数据库搜索技术. SQL基本原理就是一列中的单个数据是原子性的.也就是说,当我们对两个值进行比较时,通常是把两个值当成一个整体来比较,在SQL中比较子字符串总是意味着低效和不精确. 二.反模式:模式匹配断言 SQL提供了模式匹配断言来比较字符串,并且这是很多程序员用来搜索关键字的第一选择.最广泛使用的就是LIKE断言.

SQL反模式学习笔记17 全文搜索

2014-10-16 09:56:37 目标:全文搜索 使用SQL搜索关键字,同时保证快速和精确,依旧是相当地困难. SQL的一个基本原来(以及SQL所继承的关系原理)就是一列中的单个数据是原子性的. 反模式:模式匹配 使用Like 或者正则表达式. 缺点:(1)无法使用索引,进行全表遍历,非常耗时,性能极低. (2)有时候会返回医疗之外的结果.select * from bugs where description like '%one%', 返回结果可能是money.prone.lonely