linux 通配符 正则表达式 区别,linux下的通配符与正则表达式

linux下主要通配符与特殊字符如下:

*         代表0个或多个字符(或数字)

?         代表一个字母 ---- 数字不可以吗? 可以

#         注释,常用在脚本中

转义字符,将特殊字符或者通配符还原成一般字符

|            分隔两个管道

;         连续命令分隔

~         用户的家目录

$            变量之前需要加的,变量替换值

&         将命令变成后台工作

!         逻辑意义上的非,not

/         路径分隔

>   >>   输出导向

'            单引号,其中的变量不具有置换功能

"            双引号,其中的变量具有置换功能,即:单引号较双引号严格

`            撇号,Tab键上面那个字符,两个 ` 之间的命令可以先执行

()           中间为子shell的起始与结束

[]      中间为字符组合

{}      中间为命令区块的组合

而正则表达式,可以分为基础正则表达式和扩展正则表达式

^            在行首搜索,grep -n '^abc' file.txt      在file.txt中搜索以abc开始的行

$            在行尾搜索,grep -n '^$' file.txt         搜索空行

.               点号,代表任意一个字符,必须有一个

反斜杠,去除特殊符号的特殊意义,grep -n ' file.txt 搜索‘

*               前一个字符重复0次或多次

{nm}      前一个字符重复n - m 次,如果没有m,则代表无上限

[ ]              字符集合,---- [ ] 仅代表一个待搜索的字符,需要范围时[2-4a-g]

grep -n 'g[lde]g' file.txt,搜索glg gdg geg

grep -n 'g[^lde]g' file.txt,搜索除glg gdg geg以外的其它模式,但两个g之间一定要有一个字符

这里要注意的是:

1、^字符是否在 [ ] 中,作用是不同的

2、*字符在正则表达式中的作用与其充当通配符时的作用不同

3、!(叹号)字符在正则表达式中并不是特殊字符

扩展正则表达式:

egrep 即 grep -E 的别名

+            前一个字符,重复1或多次,egrep -n 'go+gle' file.txt 搜索gogle google gooogle......

?            前一个字符,重复0或1次

|             用或的方式找出多个字符串 egrep -n 'abc|abd' file.txt 搜索abc或abd,---- |的两边没有空格

()            找出“用户组”字符串 egrep -n 'g(oo|la)d' file.txt 搜索good或glad

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值