linux 正则通配符

Posted 是的哟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 正则通配符相关的知识,希望对你有一定的参考价值。

grep [options] regex [file...]

选项

描述

-i

忽略大小写。不会区分大小写字符。也可用--ignore-case 来指定。

-v

不匹配。通常,grep 程序会打印包含匹配项的文本行。这个选项导致 grep 程序只会打印不包含匹配项的文本行。也可用--invert-match 来指定。

-c

打印匹配的数量(或者是不匹配的数目,若指定了-v 选项),而不是文本行本身。 也可用--count 选项来指定。

-l

打印包含匹配项的文件名,而不是文本行本身,也可用--files-with-matches 选项来指定。

-L

相似于-l 选项,但是只是打印不包含匹配项的文件名。也可用--files-without-match 来指定。

-n

在每个匹配行之前打印出其位于文件中的相应行号。也可用--line-number 选项来指定。

-h

应用于多文件搜索,不输出文件名。也可用--no-filename 选项来指定。

grep bzip a*.txt    在a开头的txt文件里搜索bzip

grep -h ‘[-AZ]‘ dirlist*.txt    连字符-放在开头  表示其本身

-A3 显示后面3行     -B2 显示前面两行

 

[:lower:] 是 a-z      [[:lower:]]就是[a-z]

grep -e a -e b abc.txt   匹配a或者e

+ ? | () 等需要使用grep -E  或者 egrep,   grep不支持

 

 

 

 

通配符不止下面这几种

通配符

意义

*

匹配任意多个字符(包括零个或一个)

?

匹配任意一个字符(不包括零个)

[characters]

匹配任意一个属于字符集中的字符

[!characters]

匹配任意一个不是字符集中的字符   ^  ?

[[:class:]]

匹配任意一个属于指定字符类中的字符

 

字符类

意义

[:alnum:]

匹配任意一个字母或数字

[:alpha:]

匹配任意一个字母

[:digit:]

匹配任意一个数字

[:lower:]

匹配任意一个小写字母

[:upper:]

匹配任意一个大写字母

 

示例

模式

匹配对象

*

所有文件

g*

文件名以“g”开头的文件

b*.txt

"b"开头,中间有零个或任意多个字符,并以".txt"结尾的文件

Data???

“Data”开头,其后紧接着3个字符的文件

[abc]*

文件名以"a","b","c"开头的文件

BACKUP.[0-9][0-9][0-9]

"BACKUP."开头,并紧接着3个数字的文件

[[:upper:]]*

以大写字母开头的文件

[![:digit:]]*

不以数字开头的文件

*[[:lower:]123]

文件名以小写字母结尾,或以 “1”“2”,或 “3” 结尾的文件

以上是关于linux 正则通配符的主要内容,如果未能解决你的问题,请参考以下文章

我的Linux,我做主!通配符和正则表达式深层解析

linux通配符与正则表达式

linux学习---通配符与正则表达式

linux文件属性特殊符号通配符通配符与正则的区别

03-linux 通配符和正则表达式

linux中 正则表达式和通配符的区别