文本搜索命令,grep 是 Global Regular Expression Print 的缩写,全局正则表达式搜索
grep 在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须使用引号,模板后的所有字符串被看作文件名,搜索的结果被送到标准输出,不影响原文件内容。
命令格式:grep [option] pattern file|dir常用参数:-A n --after-context显示匹配字符后n行-B n --before-context显示匹配字符前n行-C n --context 显示匹配字符前后n行-c --count 计算符合样式的列数-i 忽略大小写-l 只列出文件内容符合指定的样式的文件名称-f 从文件中读取关键词-n 显示匹配内容的所在文件中行数-R 递归查找文件夹grep 的规则表达式:^ 锚定行的开始 如:'^log'匹配所有以 log 开头的行。 $ 锚定行的结束 如:'log$'匹配所有以 log 结尾的行。 . 匹配一个非换行符的字符,'l.g' 匹配 l+非换行字符+g,如:log* 匹配零个或多个先前字符 如:'*log' 匹配所有一个或多个空格后紧跟 log 的行.* 一起用代表任意字符 [] 匹配一个指定范围内的字符,如:'[Ll]og' 匹配 Log 和 log [^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]og' 匹配不包含 A-F 和 H-Z 的一个字母开头,紧跟 log 的行\(..\) 标记匹配字符,如:'\(log\)',log 被标记为 1\< 锚定单词的开始,如:'\<log' 匹配包含以 log 开头的单词的行\> 锚定单词的结束,如:'log\>' 匹配包含以 log 结尾的单词的行x\{m\} 重复字符 x,m 次,如:'a\{5\}' 匹配包含 5 个 a 的行x\{m,\} 重复字符 x,至少 m 次,如:'a\{5,\}' 匹配至少有 5 个 a 的行x\{m,n\} 重复字符 x,至少 m 次,不多于 n 次,如:'a\{5,10\}' 匹配 5 到 10 个 a 的行\w 匹配文字和数字字符,也就是[A-Za-z0-9],如:'l\w*g'匹配 l 后跟零个或多个字母或数字字符加上字符 p \W \w 的取反,匹配一个或多个非单词字符,如 , . ' "\b 单词锁定符,如: '\blog\b' 只匹配 log