shell 中的通配符和正规表示法(正则表达式)
2017-06-14 10:38
162 查看
shell 中的通配符与特殊符号
* 代表『 0 个或者无穷多个』任意字符
? 代表『一定有一个』任意字符
[ ] 同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d 这四个任何一个』
[-] 若有减号在中括号内时,代表『在编码顺序内癿所有字符』。例如 [0-9] 代表 0 刡 9 之间的所有数字,因为数字的语系编码是连续的!
[^] 若中括号内癿第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字符,叧要是非 a, b, c 的其他字符就接受的意思。
# 批注符号:这个最常被使用在 script 当中,规为说明!在后的数据均不执行。注释
\ 跳脱符号:将『特殊字符戒通配符』还原成一般字符
| 管线 (pipe):分割两个管线命令的界定
; 连续指令下达分割符:连续性命令的界定
~ 用户家目录
$ 取用变数前导符:亦即是变量之前需要加的变量取代值。上次命令返回值,0是执行成功
& 工作控制 (job control):将指令发成背景下工作
! 逻辑运算意义上的『非』
/ 目录符号:路径分割的符号
< << 数据重定向,输入导向
> >> 数据重定向,输出导向,分别是取代和追加
'' 单引号不具备变量置换功能
"" 具有变量置换功能
`` 两个『 ` 』中间为可以先执行 的指令,亦可使用 $( )
() 在中间为子 shell 的起始与结束
{} 在中间为命令区块的组合
正规表示法(正则表达式)
处理字符串的方法,他是以行为单位来进行字符串的处理行为。透过一些特殊符号的辅助,可以让使用者轻易的达到『搜寻/删除/取代』某特定字符串的处理程序!
. 一定有一个任意字符(除换行以外)
* 重复前一个字符0到无穷多次 (通配符表示 0到任意多个字符)
{} 一定范围区间重复字符。{} 在shell 中有特别的含义,使用时要转换。如:$last | grep -n 'o\{1,\}'
^ 行首
$ 行尾
\ 转义
[] [a-z] 选一个
[^a-z] 取反
注意和通配符的区别。在不支持正规表示法的命令(工具)中,则是通配符的使用。
延伸正规表示法(不适用sed 适用于gawd等扩展的)
如:除去文档的注释和空白行
gerp -v '^#' file_name | grep -v '^$' 使用延伸正规表示法:
egrep -v '^$|^#' file_name (也可以用grep -E , grep 不直接支持延伸正规表示法)
延伸正规表示法,可以透过群组功能( | 管线命令) 进行一次搜索,’ | ‘ 在单引号内是 or 的意思
延伸正规表示法就是多了几个特殊符号。
+ 重复一个或以上前一个字符,o+ 代表一个以上个o
? 零个或1个
| or 的意思 ,如找gd 或者 good : egrep -n 'gd|good' file_name
() 找出群组字符,
()+ 多个群组(重复)
* 代表『 0 个或者无穷多个』任意字符
? 代表『一定有一个』任意字符
[ ] 同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d 这四个任何一个』
[-] 若有减号在中括号内时,代表『在编码顺序内癿所有字符』。例如 [0-9] 代表 0 刡 9 之间的所有数字,因为数字的语系编码是连续的!
[^] 若中括号内癿第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字符,叧要是非 a, b, c 的其他字符就接受的意思。
# 批注符号:这个最常被使用在 script 当中,规为说明!在后的数据均不执行。注释
\ 跳脱符号:将『特殊字符戒通配符』还原成一般字符
| 管线 (pipe):分割两个管线命令的界定
; 连续指令下达分割符:连续性命令的界定
~ 用户家目录
$ 取用变数前导符:亦即是变量之前需要加的变量取代值。上次命令返回值,0是执行成功
& 工作控制 (job control):将指令发成背景下工作
! 逻辑运算意义上的『非』
/ 目录符号:路径分割的符号
< << 数据重定向,输入导向
> >> 数据重定向,输出导向,分别是取代和追加
'' 单引号不具备变量置换功能
"" 具有变量置换功能
`` 两个『 ` 』中间为可以先执行 的指令,亦可使用 $( )
() 在中间为子 shell 的起始与结束
{} 在中间为命令区块的组合
正规表示法(正则表达式)
处理字符串的方法,他是以行为单位来进行字符串的处理行为。透过一些特殊符号的辅助,可以让使用者轻易的达到『搜寻/删除/取代』某特定字符串的处理程序!
. 一定有一个任意字符(除换行以外)
* 重复前一个字符0到无穷多次 (通配符表示 0到任意多个字符)
{} 一定范围区间重复字符。{} 在shell 中有特别的含义,使用时要转换。如:$last | grep -n 'o\{1,\}'
^ 行首
$ 行尾
\ 转义
[] [a-z] 选一个
[^a-z] 取反
注意和通配符的区别。在不支持正规表示法的命令(工具)中,则是通配符的使用。
延伸正规表示法(不适用sed 适用于gawd等扩展的)
如:除去文档的注释和空白行
gerp -v '^#' file_name | grep -v '^$' 使用延伸正规表示法:
egrep -v '^$|^#' file_name (也可以用grep -E , grep 不直接支持延伸正规表示法)
延伸正规表示法,可以透过群组功能( | 管线命令) 进行一次搜索,’ | ‘ 在单引号内是 or 的意思
延伸正规表示法就是多了几个特殊符号。
+ 重复一个或以上前一个字符,o+ 代表一个以上个o
? 零个或1个
| or 的意思 ,如找gd 或者 good : egrep -n 'gd|good' file_name
() 找出群组字符,
()+ 多个群组(重复)
相关文章推荐
- 写得蛮好的linux学习笔记(压缩命令,vi一般用法,认识SHELL,正规表示法)
- 压缩命令-vi-认识SHELL-正规表示法
- 《shell中的通配符,特殊字符和正则表达式》
- 鸟哥的Linux私房菜学习笔记(三)学习 Shell 与 Shell scripts——正规表示法与文件格式化处理
- 常用 压缩命令-vi-SHELL命令-正规表示法
- 压缩命令-vi-认识SHELL-正规表示法
- Shell编程之通配符
- Linux Bash Shell学习(二):目录和通配符
- shell介绍 、命令历史、命令补全和别名 、 通配符、输入输出重定向
- linux学习第二十三篇:shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向
- 11.15 shell介绍 ,命令历史,命令补全和别名,通配符,输入输出重定向
- shell基础,命令历史,别名,通配符,输入输出重定向
- shell通配符包括*?[]!
- shell中的通配符与正则表达式
- 鸟哥的Linux私房菜——第十五章:正规表示法
- shell sed中引用shell变量及空格表示方法
- shell 两种变量的表示方法,大括号的作用
- 第12章 正规表示法与文件格式化处理
- 正则表达式和通配符的区别
- 【shell】通配符