ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## grep Globel search Regular Expression and Print out the line 全面搜索正则表达式并把行打印出来,它是一种强大的**逐行**文本搜索工具,与正则表达式结合使用。 >fgrep:fast grep不支持正则表达式,速度较快,节省大量CPU资源 ### Pattern 文本和正则表达式所组成的匹配条件 ~~~ grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...] ~~~ ### OPTIONS ~~~ -c --count 统计文件中包含文本的次数 -i --ignore-case 忽略大小写 -v --invert-match 显示不匹配的行 -o --only-matching 只显示被匹配到的字符 -q --quite 过滤但不输出,返回值可以作为判断 -w --word-regexp 将元字符不在解析为特殊含义,简单处理为匹配字符串 -x --line-regexp 匹配整行而不是部分匹配 --color 匹配后以颜色标出 -r --recursive 递归搜索 -e 匹配多个模式 --exclude-dir=d 除去某个目录 --exclude=GLOB 除去通配的文件 --include=GLOB 只包含通配的文件 ~~~ ~~~ -E 开启扩展正则 -A NUMBER OFLINE 显示之后几行 -B NUMBER OFLINE 显示之前几行 -C NUMBER OFLINE 显示前后几行 ~~~ ### 匹配字符 元字符 >[info]当模式中出现元字符,模式需要使用引号。 单引号表示强引用,不做变量替换; 双引号为弱引用,会做变量替换。 ~~~ . 匹配任意单个字符 [ ] 匹配范围内的任意单个字符 [^ ] 匹配指定范围外的任意单个字符 ~~~ >或字符"|"是扩展正则表达式中定义的,grep需要加上-E选项才能支持它。 #### 字符集合 ~~~ [:digit:] [0-9] [:xdigit:] [0-9a-fA-F] [:lower:] [a-z] [:upper:] [A-Z] [:alnum:] [0-9a-zA-Z] [:space;] 空格或者tab [:punct:] 标点 ~~~ ### 匹配次数 贪婪匹配 ~~~ \? 0次或1次前面的字符 + 匹配前面的字符1次或者多次 * 任意长度的前面的字符(除换行符) .* 任意长度任意字符 \{m,n\} 前面的字符至少m次,最多n次 ~~~ >[info] 在扩展正则表达式中,省略"\\",支持“|” 或 ### 位置锚定 ~~~ ^ 此字符后面的内容必须在行首 $ 此字符前面的内容必须在行尾 ^$ 空白行 \<或者\b 锚定词首,其后面的字符必须作为单词的首部 \>或者\b 锚定词尾,其前面的字符必须作为单词的尾部 ~~~ >[danger] \^[[:space:]]*$ 可以有空格,但不能有任何字符的行,也可以为空行 > 单词 字符中不包含特殊字符即可 ### 分组 将一个或者多个字符绑定成一个整体进行匹配; 分组后便于后向引用; ~~~ \(\) ~~~ ![](https://ws2.sinaimg.cn/large/006tNc79ly1fl5tkq3yxbj30q00bgjsm.jpg) ### 后向引用 ~~~ \1: 引用第一个左括号以及与之对应的右括号所包括的所有内容 ~~~