公司动态
CentOS grep 命令
grep 全称是 Global Regular Expression Print表示全局正则表达式版本它的使用权限是所有用户grep 命令是一种强大的文本搜索工具它能使用正则表达式搜索文本并把匹 配的行打印出来常用选项-E 开启扩展Extend的正则表达式使用 | 来分割多个pattern以此实现OR操作-i 忽略大小写ignore case-v 反过来invert只打印没有匹配的而匹配的反而不打印-n 显示行号-w 被匹配的文本只能是单词而不能是单词中的某一部分-c 显示总共有多少行被匹配到了而不是显示被匹配到的内容注意如果同时使用-cv选项是显示有多少行没有被匹配到-o 只显示被模式匹配到的字符串-e 实现多个选项的匹配逻辑or关系--color :将匹配到的内容以颜色高亮显示。-A n 显示匹配到的字符串所在的行及其后 n 行-B n 显示匹配到的字符串所在的行及其前 n 行-C n 显示匹配到的字符串所在的行及其前后各 n 行正则表达式通过一些特殊字符来表示一类字符内容然后交给前面的命令来执行如果使用特殊字符本身的含义就需要‘\’进行转译。1、字符匹配 . // 任意一个字符 [] // 匹配范围内的任意一个字符 [^] // 范围外任意一个字符 次数匹配 * // 匹配前面的字符0次到n次 \ // 匹配前面的字符0次到1次 \ // 匹配前面字符1次到n次 \{m\} // 匹配前面的一个字符m次 \{m,n\} // 匹配前一个字符m到n次 \{0,n\} // 匹配前面的字符0次到n次0必须加 \{m,\} // 匹配前面一个字符至少m次 位置锚钉 ^ // 锚定行首 $ // 锚定行尾 \b // 锚定词首或词尾用在前面为词首后面为词尾 \ // 锚定词尾 \ // 锚定词首 分组 特性 默认情况下Linux系统会为分组指定变量变量的表示形式\1 \2 \3 ...后向 引用 abc* // 我们把abc看成一个整体 \(\) // 将里面的看作是一个整体进行匹配 补充 扩展正则表达式分组用()表示 标准正则表达式中的\可以去掉grep 实例cat test.txt abc aabc aaabbbc good alice # 查找文本中 包含 a2-3次行 grep a\{2,3\} test.txt aabc aaabbbc # 查找文本中 以 d 结尾的行 grep d$ test.txt good # 查找文本中 以 a 开头的行 cat test.txt | grep ^a abc aabc aaabbbc alice # 同时过滤空白行与注释行 cat test.txt | grep -v ^$ | grep -v ^# # 显示不以 # 开头的行 cat test.txt | grep ^[^#]