正则, grep

1. 正则表达式

 正则表达式 描述 示例
^ 行起始标记 ^hell匹配以hell开头的行
$ 行尾标记  test$匹配以test结尾的行
.匹配任意一个字符 hell.匹配hell1,hell2,但是不能匹配hell12,只能匹配单个字符
[] 匹配包含在[字符]之中的任意一个字符 test[123]匹配test1,test2,test3
[^]匹配除[^字符]之外的任意一个字符 test[^12]不匹配test1,test2,匹配test3
[-]匹配指定范围内的任意一个字符 [0-10],匹配0~10中的任意一个数字
? 匹配之前的项1次或者0次  hel?o匹配helo或者heo
+ 匹配之前的项1次或者多次  hel+o匹配helo或者helllllo,但是不能匹配heo
*匹配之前的项0次或多次  hel*o匹配helo或者helllllo,也能匹配heo
()创建一个用于匹配的子串 ma(tri)?可以匹配ma或者matri
{n}匹配之前的项n次 [0-9]{3}匹配任意一个三位数
{n,}匹配之前的项至少n次 [0-9]{3,}匹配任意一个三位或者更多位的数
{n,m}匹配之前的项n到m次 [0-9]{3,4}匹配一个三位到四位的数
|匹配 | 两边的任意一项 June (1st | 2nd)匹配June 1st或者June 2nd
\转义符可将上面的符号转义 a\*b匹配a*b,不能匹配ab

2. grep

递归搜索

grep "text" . -R -n

-R 表示在当前目录递归搜索,-n打印出匹配的文件的行号

Linux Shell Scripting Cookbook 读书笔记 4-LMLPHP

Linux Shell Scripting Cookbook 读书笔记 4-LMLPHP

Linux Shell Scripting Cookbook 读书笔记 4-LMLPHP

如果需要排除目录,可以使用--exclude-dir

打印出匹配行的前后行

Linux Shell Scripting Cookbook 读书笔记 4-LMLPHP

多个匹配以--分隔

Linux Shell Scripting Cookbook 读书笔记 4-LMLPHP

05-11 03:00