Linux通配符和正则表达式

通配符

*星号,匹配任何字符 ? 问号,匹配任意一个字符 []中括号,匹配括号中的一个字符 ls 会列出当前目录下所有文件,匹配了所有的文件名,而ls a*匹配所有a开头的文件。 需要注意的是,如果当前目录下有目录名匹配成功,会列出该目录下所有文件

*可以代替任意个数字符,?只能代替一个。

正则表达式

[:alnum:]:代表英文大小写字符及数字,即0-9,a-z,A-Z
​
[:alpha:]:代表任何英文大小写字符,即a-z,A-Z
​
[:blank:]:代表空格键与[Tab]按键
​
[:digit:]:代表数字,0-9
​
[:graph:]:除了空格符(空格键与[Tab]按键)外的其他所有按键
​
[:lower:]:代表小写字符,即a-z
​
[:punct:]:代表标点符号(punctuation symbol),即”’?!;:#$
​
[:upper:]:代表大写字符,即A-Z
​
[:space:]:任何会产生空白的字符,包括空格键[Tab]CR等
​

基础正则表达式

RE字符意义
^word待查找的字符串(word)在行首。
word$待查找的字符串(word)在行尾。^$代表空行,^aa$只匹配aa
.代表一定有一个任意字符的字符
\转义字符,将特殊符号的特殊意义去除。
*重复零个到无穷多个的前一个字符
[list]从字符集合的RE字符里面找出想要选取的字符范围。
[n1-n2]从字符集合的RE字符里面找出想要选取的字符。
[^list]从字符集合的RE字符里面找出不要的字符串或范围。
{n,m}连续n到m个的前一个RE字符,若为{n}则是连续n个的前一个RE字符,若为{n,}则是连续n个及以上的前一个RE字符。

.:代表【一定有一个任意字符】;*:代表【重复前一个字符。0到无穷多次】;{}表示限定字符的范围,需要使用\转移,如'a{2,3}' 2到3个a,'a{2,}' 2个以上的a

正则表达式的特殊字符与一般在命令行输入的命令通配符不一样,如*,在通配符表示0~无穷多个字符,在正则表达式表示重复0~无穷前一个字符。

扩展正则表达式

+重复一个或一个以上的前一个字符
?零个或一个的前一个字符
|or
( )找出群组字符串,'g(la|oo)d'
( )+多个重复群组

egrep等同于grep -E,grep不识别扩展的正则表达式,egrep或者grep -E才能识别。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux命令中,正则表达式是一种强大的工具,用于在文本中进行模式匹配和搜索。正则表达式可以应用于各种命令(如grep、sed、awk等),以及编辑器(如vim)和服务器(如nginx)等。正则表达式由字母、数字和特殊符号组成,按照一定的规则来表达某种含义。 在Linux命令中,常见的正则表达式符号包括: 1. . (点号):匹配任意一个字符。 2. * (星号):匹配前一个字符的零个或多个出现。 3. + (加号):匹配前一个字符的一次或多次出现。 4. ? (问号):匹配前一个字符的零次或一次出现。 5. [] (方括号):用于定义字符集,匹配方括号中任意一个字符。 6. ^ (脱字符):匹配行的开始位置。 7. $ (美元符号):匹配行的结束位置。 8. \ (反斜杠):用于转义特殊字符。 举个例子,如果你想在一个文件中查找所有以"hello"开头的行,你可以使用grep命令结合正则表达式进行匹配。命令如下: grep "^hello" filename 其中,^表示行的开始位置,"hello"表示要匹配的字符串。这个命令会输出所有以"hello"开头的行。 另外,正则表达式还支持更复杂的模式匹配,比如通配符、字符类、重复选项等。你可以根据具体的需求,结合正则表达式的语法规则,来构建适合你的匹配模式。 综上所述,正则表达式Linux命令中是一个非常有用的工具,可以帮助你快速准确地进行文本搜索和模式匹配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值