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

# 查找文本中 包含 "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 ^[^#]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值