三分钟教你轻松掌握 grep 命令中的正则表达式

By -

如何在 Linux 系统和类 Unix 的操作系统中使用带正则表达式grep 命令呢?

Linux 系统自带了支持拓展正则表达式的 GNU 版本 grep 工具。所有的 Linux 系统中默认安装的都是 GNU 版 grep 。grep 命令被用来检索一台服务器或工作站上任何位置的文本信息。

一、快速了解正则表达式

1、如何匹配你要查找的内容?

正则表达式只不过是每个输入行匹配的模式。模式是一个字符序列。下面都是范例:

例如:“^w1”、“w1|w2”、“[^ ]”。

 ‘/etc/passswd’ 中检索 ‘vivek’ 。

输出结果案例:

在任何情况下都搜索 ‘vivek’  (即不区分大小):

不区分大小写地检索 ‘vivek’ 和 ‘raj’ :

在最后一个例子中,使用了扩展正则表达式的模式。

固定检索内容的位置:
你可以使用 ^ 和 $ 符号强制一个正则表达式分别匹配一行的开始或结束的位置。下面的示例显示以 ‘vivek’ 开头的文本。

输出结果示例:

你可以只显示以 vivek 开头的文本行。举例说就是不显示 vivekgite , vivekg 这样单词开头的。

检索以 ‘foo’ 结尾的文本格式:

你还可以用下面这样的方式搜索空白行:

2、如何匹配具体字符?

匹配 ‘Vivek’ 或 ‘vivek’ :

或者可以这样:

你可以匹配数字(例如匹配 vivek1 或 Vivek2 ):

你可以匹配两位数(例如匹配 foo11 , foo12 ):

不仅仅是数字,你可以匹配字母:

显示所有包含 “w” 或 “n” 字母的文本行:

在括号内的表达式中,在“ [: ”和" :] ”中所附的字符类的名称:代表属于该类的所有字符的列表。标准字符类名称:

  • [:[:alnum:]strong>字母数字字符。
  • [:[:alpha:]strong> – 字母顺序
  • [:[:blank:]strong>空格和制表符。
  • [:[:digit:]strong>数字: ‘0 1 2 3 4 5 6 7 8 9’。
  • [:[:lower:]strong>小写字母:‘a b c d e f ‘。
  • [:[:space:]strong> – 特殊字符:制表符,换行符,垂直制表符、换页,回车,和空间。
  • [:[:upper:]strong>大写字母:‘A B C D E F G H I J K L M N O P Q R S T U V W X Y Z’。

在下面这个例子中,匹配所有大写字母:

发表评论

电子邮件地址不会被公开。