Linux通配符与正则表达式

 

 

 

linux通配符和三剑客(grep、sed、awk)正则表达式是不一样的
通配符一般是用于命令行脚本等bash环境,而linux正则表达式常用于三剑客场景

 

 

 

 

 

常见通配符:

*       - 代表所有(0到多个)字符      
?       - 代表任意一个字符
;       - 两个命令之间的分隔符
#       - 在配置文件里,注释效果
|       - 管道文件
~       - 当前用户的家目录
-       - 上一次的所在目录
$       - 变量前需要加的符号
/       - 路径分隔符,也是根
>或1>   - 输出重定向,覆盖原有数据
>>      - 追加输出重定向,追加在文件内容的尾部
<       - 输入重定向(xargstr<<      - 追加输入重定向(cat'       - 单引号,不具备变量置换功能,引号内所见即所得
"       - 双引号,具备变量置换功能,解析变量后输出,不加引号相当于双引号
`       - 反引号,两个``中间为命令,会先执行,等价$()
{}      - 中间为命令去块组合或内容系列
!       - 逻辑运算中的“非”(not)
&&      - and并且,当前一个指令执行成功时,执行后一个指令
||      - or或者,当前一个指令执行失败时,执行后一个指令
..      - 代表上级目录
.       - 代表当前目录

 

 

常见正则表达式:

    为处理大量字符串而定义的一套规则和方法,linux正则表达式一般以行为单位处理的

    1. 基础正则表达式

^        - 表示以...字符开头,^word
$        - 表示以...字符结尾,word$
^$       - 表示空字符,即可理解为空行
.        - 表示匹配任意单个字符
\        - 表示转义符
*        - 表示重复前面0个或1个以上字符
.*       - 表示匹配所有
[]       - 表示匹配"[]"里面任意单个字符
[^]      - 表示取反"[^]"里面的任意单个字符
[-]      - 表示匹配"[-]"里一段字符的任意单个字符,如[0-9]即0到9
1\{4\}   - 表示匹配字符 "1" 重复4次
1\{5,\}  - 表示匹配字符 "1" 重复4次或4次以上
1\{,8\}  - 表示匹配字符 "1" 重复8次或8次以内
1\{3,5\} - 表示匹配字符 "1" 重复3-5次

    2. 扩展正则表达式

+        - 表示重复 "一个或一个以上" 前面的所有字符("*"是0个)
?        - 表示重复 "0个或一个" 前面的字符("."是有且只有1个)
|        - 表示过滤多个字符串
()       - 分组过滤,后向引用

    3. 元字符

\b - 边界字符,单词边界
\n - 换行符

 

posted @ 2019-01-22 15:07  糕事情  阅读(889)  评论(0编辑  收藏  举报