shell中参数的模式匹配
2010-06-12 10:19
337 查看
模式匹配
参数扩展还包括了一些模式匹配功能,该功能带有在文件名扩展或 globbing 中使用的通配符功能。注意:这不是
表 2. Shell 扩展模式匹配
清单 11 给出了模式匹配扩展的一些基本用法。
清单 11. 模式匹配示例
参数扩展还包括了一些模式匹配功能,该功能带有在文件名扩展或 globbing 中使用的通配符功能。注意:这不是
grep使用的正则表达式匹配。
扩展 | 目的 |
---|---|
${PARAMETER#WORD} | shell 像文件名扩展中那样扩展 WORD,并从 PARAMETER 扩展后的值的开头删除最短的匹配模式(若存在匹配模式的话)。使用 ‘@’ 或 ‘$’ 即可删除列表中每个参数的模式。 |
${PARAMETER##WORD} | 导致从开头删除最长的匹配模式而不是最短的匹配模式。 |
${PARAMETER%WORD} | shell 像文件名扩展中那样扩展 WORD,并从 PARAMETER 扩展后的值末尾删除最短的匹配模式(若存在匹配模式的话)。使用 ‘@’ 或 ‘$’ 即可删除列表中每个参数的模式。 |
${PARAMETER%%WORD} | 导致从末尾删除最长的匹配模式而不是最短的匹配模式。 |
${PARAMETER/PATTERN/STRING} | shell 像文件名扩展中那样扩展 PATTERN,并替换 PARAMETER 扩展后的值中最长的匹配模式(若存在匹配模式的话)。为了在 PARAMETER 扩展后的值开头匹配模式,可以给 PATTERN 附上前缀 #,如果要在值末尾匹配模式,则附上前缀 %。如果 STRING 为空,则末尾的 / 可能被忽略,匹配将被删除。使用 ‘@’ 或 ‘$’ 即可对列表中的每个参数进行模式替换。 |
${PARAMETER//PATTERN/STRING} | 对所有的匹配(而不只是第一个匹配)执行替换。 |
清单 11. 模式匹配示例
[ian@pinguino ~]$ x="a1 b1 c2 d2" [ian@pinguino ~]$ echo ${x#*1} b1 c2 d2 [ian@pinguino ~]$ echo ${x##*1} c2 d2 [ian@pinguino ~]$ echo ${x%1*} a1 b [ian@pinguino ~]$ echo ${x%%1*} a [ian@pinguino ~]$ echo ${x/1/3} a3 b1 c2 d2 [ian@pinguino ~]$ echo ${x//1/3} a3 b3 c2 d2 [ian@pinguino ~]$ echo ${x//?1/z3} z3 z3 c2 d2 |
相关文章推荐
- 模式匹配运算符–Shell
- perl 模式匹配参数详解
- Scala学习教程笔记三之函数式编程、集合操作、模式匹配、类型参数、隐式转换、Actor、
- shell:字符串模式匹配# %
- hadoop MapReduce集群模式调整匹配及shell脚本处理
- Shell基于模式匹配的字符串操作
- shell中的四种模式匹配
- perl 模式匹配参数详解
- 模式匹配运算符–Shell
- Shell开启扩展模式匹配shopt -s extglob
- Scala学习教程笔记三之函数式编程、集合操作、模式匹配、类型参数、隐式转换、Actor、
- Shell:字符串模式匹配# %
- 模式匹配运算符–Shell
- Erlang:条件判断3种方法,函数参数模式匹配、case模式匹配、if
- shell判断一个字符串是否匹配某个模式
- perl 模式匹配参数详解
- shell用户配置详解及bash命令参数
- KMP字符串模式匹配的C实现
- coreseek/sphinx中的匹配模式
- 串模式匹配之------KMP