《shell中的通配符,特殊字符和正则表达式》
2015-03-03 14:04
197 查看
1. shell支持的通配符
shell支持一组通配符用于处理数据,但是要和正则表达式区别开来。shell的通配符实现的功能比较简单,常用于文件名匹配,远不及正则表达式强大和广泛。不过对于日常使用linux还是有非常大的帮助的。下表取自《鸟哥的linux私房菜》
2. shell中的特殊字符(以bash为例)
通配符常用于文件名匹配,而特殊字符的则协助shell完成各种具体工作。下表取自《鸟哥的linux私房菜》
3. 正则表达式
关于正则表达式,我以前学习的时候也写过一篇博客,不涉及具体知识,只是记录一下当时自己的一些想法和感受。参考
《谈谈正则表达式》
shell支持一组通配符用于处理数据,但是要和正则表达式区别开来。shell的通配符实现的功能比较简单,常用于文件名匹配,远不及正则表达式强大和广泛。不过对于日常使用linux还是有非常大的帮助的。下表取自《鸟哥的linux私房菜》
符号 | 意义 |
* | 代表『 0 个到无穷多个』任意字符 |
? | 代表『一定有一个』任意字符 |
[ ] | 同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d 这四个任何一个』 |
[ - ] | 若有减号在中括号内时,代表『在编码顺序内的所有字符』。例如 [0-9] 代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的! |
[^ ] | 若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字符,只要是非 a, b, c 的其他字符就接受的意思。 |
通配符常用于文件名匹配,而特殊字符的则协助shell完成各种具体工作。下表取自《鸟哥的linux私房菜》
符号 | 内容 |
# | 批注符号:这个最常被使用在 script 当中,视为说明!在后的数据均不运行 |
\ | 跳脱符号:将『特殊字符或通配符』还原成一般字符 |
| | 管道 (pipe):分隔两个管线命令的界定(后两节介绍); |
; | 连续命令下达分隔符:连续性命令的界定 (注意!与管线命令并不相同) |
~ | 用户的家目录 |
$ | 取用变量前导符:亦即是变量之前需要加的变量取代值 |
& | 工作控制 (job control):将命令变成背景下工作 |
! | 逻辑运算意义上的『非』 not 的意思! |
/ | 目录符号:路径分隔的符号 |
>, >> | 数据流重导向:输出导向,分别是『取代』与『累加』 |
<, << | 数据流重导向:输入导向 (这两个留待下节介绍) |
' ' | 单引号,不具有变量置换的功能 |
" " | 具有变量置换的功能! |
` ` | 两个『 ` 』中间为可以先运行的命令,亦可使用 $( ) |
( ) | 在中间为子 shell 的起始与结束 |
{ } | 在中间为命令区块的组合! |
关于正则表达式,我以前学习的时候也写过一篇博客,不涉及具体知识,只是记录一下当时自己的一些想法和感受。参考
《谈谈正则表达式》
相关文章推荐
- shell 引号 转义符 通配符 特殊字符
- shell 引号 转义符 通配符 特殊字符
- 正则表达式中的特殊字符
- Shell中有特殊含义的字符
- 正则表达式中的特殊字符
- shell 编程中的特殊字符的处理
- 【Unix/Linux.Shell Script】Shell Script的执行及特殊字符
- shell特殊字符总结
- Linux下高效编写Shell——Shell特殊字符汇总
- shell学习之-特殊字符
- shell特殊字符,shell的几个命令
- shell的特殊字符
- 正则表达式中的特殊字符
- shell学习笔记之五(特殊字符)
- Shell变量名使用的特殊字符
- 2. 二. Shell中的特殊字符 (shell命令)
- shell中的特殊字符
- Shell中的一些常用特殊字符
- 正则表达式中问号等特殊字符的转义
- SHELL相关的特殊字符总结