shell-07-三剑客-grep

举报
kaliarch 发表于 2021/12/10 13:39:28 2021/12/10
【摘要】 一、概念grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是...

一、概念

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。

二、语法格式

grep [OPTION]… PATTERN [FILE]

2.1 选项

  • -i:忽略大小写
  • -c:统计匹配到字符串的次数
  • -n:顺便输出行号
  • -v:反向选择,显示没有匹配到的内容
  • -o:只显示匹配到的串
  • -A:显示匹配到的字符后面的n行
  • -B:显示匹配到的字符前面的n行
  • -C:显示前后各n行

2.2 模式

  • 基本正则表达式元字符:
. :匹配任意单个字符
[] :匹配指定范围内的字符
[^]:匹配指定范围外的任意字符
  • 次数匹配(贪婪模式)
*:匹配其前的字符01或者多次
?:匹配其前的字符01次
\{m,n\}:
    \(m,\):至少m次
    \{0,n\}:至多n次
    \{m\}:m次
  • 锚定符:
r..t  :root  chroot
* 单词锚定:
\<:锚定词首:\<r..t,    \b
\>:锚定词尾:root\>
* 行首行末锚定:
^: ^root,  行首
$:    root$ 行尾
.*:  任意长度的任意字符
  • 分组:
    ()
    (abc)
  • 引用:
\1 :后向引用,引用前面的第一个左括号与与之对应的右括号中的模式所匹配到的内容

eg:

dmesg |grep -n eth0
grep -E '/.{2,3}' /etc/passwd

取掉空行

grep -E -v "^$|^#" /etc/httpd/conf/httpd.conf

查看mysql中的库

$(mysql -uroot -p'passwd' -e "show databases;"|egrep -v 'Database|^test|mysql|performance_schema|information_schema')
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。