📜  Linux Grep正则表达式(1)

📅  最后修改于: 2023-12-03 14:43:55.140000             🧑  作者: Mango

Linux Grep正则表达式

在Linux系统中,Grep是一款十分常用的命令行工具,它可以根据正则表达式(Regular Expression,简称Regex)来过滤匹配的文本内容。本文将着重介绍Linux Grep命令的正则表达式特性。

常见正则表达式

正则表达式是一种字符模式,通过一定规则组成一些特定的字符集,然后使用这些字符集来匹配文本中的字符串。以下为一些常见的正则表达式:

1. 基本字符
  • 字母或数字:a, b, 1, 2等。
  • 特殊字符:日常使用的符号,如'!', '@', '#'等。
  • 空格:用于匹配任意一个空格字符。
2. 特殊字符
  • . :匹配任意单个字符,换行符除外。
  • * :匹配任意多个字符。
  • ? :匹配零个或一个字符。
  • [] :匹配里面包含的任意一个字符。如[abc]可以匹配a、b、c中的任意一个字符。
  • [a-z] :匹配a~z范围内的任意一个字符。
  • [^a-z] :匹配不在a~z范围内的任意一个字符。
3. 位置指定符号
  • ^ :匹配一行文本的开头。
  • $ :匹配一行文本的结尾。
常用命令
1. grep

使用grep命令可以查找匹配的文本行,语法如下:

grep [OPTION] PATTERN [FILE...]

其中,PATTERN就是正则表达式字符串。使用例子:

grep 'hello' text.txt

以上命令就是在text.txt文件中查找所有包含“hello”的文本行。

2. egrep

egrep命令与grep的功能基本一样,不同之处在于其支持更多正则表达式语法,同时接收多个PATTERN参数。语法如下:

egrep [OPTION] PATTERN [FILE...]

使用例子:

egrep 'hello|world' text.txt

以上命令就是在text.txt文件中查找所有包含“hello”或“world”的文本行。

3. fgrep

fgrep命令与grep的区别在于其并不使用正则表达式,而是将字符串视为纯文本匹配。语法如下:

fgrep [OPTION] PATTERN [FILE...]

使用例子:

fgrep 'hello world' text.txt

以上命令就是在text.txt文件中查找所有包含“hello world”的文本行。

可选参数

常用的grep可选参数:

  • -i :忽略大小写。
  • -v :文本反选模式,查找不匹配的文本行。
  • -n :显示每行匹配的行号。
  • -c :只显示匹配到的总行数,不显示具体匹配内容。

以上就是Linux Grep命令的主要内容和语法,期望能对你理解和使用正则表达式有所帮助。