📜  grep中的正则表达式(1)

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

Grep中的正则表达式

grep是一个在Unix和类Unix操作系统中常用的文本搜索工具,它可以通过正则表达式来搜索文本。正则表达式是由字符和运算符组合而成的模式,用来描述文本中的模式。在grep中,正则表达式用来描述需要匹配的模式。

基本语法

grep中,使用正则表达式的格式为:

grep [options] [正则表达式] [文件名]

其中,[正则表达式]部分可以使用不同的模式来描述需要匹配的文本。

常用的正则表达式语法
基本字符匹配

字符 | 描述 ---- | ---- . | 匹配任意字符 * | 匹配前面的字符0次或多次 + | 匹配前面的字符1次或多次 ? | 匹配前面的字符0次或1次 [] | 匹配括号中的任意一个字符 [a-z] | 匹配a到z之间的任意一个字符 [0-9] | 匹配0到9之间的任意一个字符 [^abc] | 排除abc中的任意一个字符

锚点

字符 | 描述 ---- | ---- ^ | 匹配行首 $ | 匹配行尾

分组和引用

字符 | 描述 ---- | ---- () | 将字符分组 \1 | 引用第一个分组 \2 | 引用第二个分组 \3 | 引用第三个分组

特殊字符

字符 | 描述 ---- | ---- \ | 转义字符 \t | 制表符 \n | 换行符

示例
匹配邮箱地址
grep -E '\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b' [文件名]
匹配文件中的IP地址
grep -E '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' [文件名]
匹配文件中的URL
grep -E '\bhttps?://[^\s]+\b' [文件名]
参考资料