CentOS grep 命令
📅 2026/7/28 18:09:25
👁️ 阅读次数
📝 编程学习
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 # 查找文本中 包含 "a",2-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 ^[^#]
编程学习
技术分享
实战经验