grep的简单使用

Grep

在file…文件中找到能够匹配pattern字符串的行

  • 基本格式
grep 要匹配的符号 要进行匹配的文件
grep pattern file...
  • pattern 支持正则表达式
    • ^ 匹配开头
    • $ 匹配结尾
    • [a-z] 匹配a-z字符集
    • \d 匹配一个数字
    • . 匹配任意字符一次
    • 量词
      • * 匹配前面的字符任意次
      • ? 匹配前面的字符0次或1次
      • {n,m} 匹配前面的字符n到m次,比如{1,3}则最少匹配1次,最多匹配3次
  • File 可以是一个文件也可以多个文件
    • 一个文件: name.txt
    • 多个文件: 用分号隔开
      • grep a 1.txt 2.txt 3.txt
    • 使用通配符来指定多个文件
      • *匹配文件名中任何字符串,包括空字符串
        • grep a *.log // 在所有log结尾的文件中找出现了a的那些行
      • ? 匹配文件名单个字符
        • grep a test?.log //匹配test1.log,testa.log,testb.log…的文件含有a的一行
      • […] 匹配[]中包含的任何字符
        • grep a test[1-2].log //匹配test1.log,test2.log
      • [!..] 匹配不在[]中包含的任何字符
        • grep a test[!a-z].log
  • 参数
    • -i 忽略大小写来进行匹配
    • -v 打印没有匹配的,反而不打印匹配的
    • -n 显示行号
    • -c 显示总共多少行被匹配了,而不是显示被匹配的具体内容
    • -o 只显示被pattern匹配到的字符串(默认是把匹配到字符的当前行返回)

例子

grep "a" *   //匹配当前目录下所有文件中含有a的行

// 在所有符合test[x].log的文件中匹配,一行中只含有一个数字的行,并返回
// 因为shell里面\有意义,所以要用\\来转义
grep ^\\w$ test?.log  //
// 使用""就不用\\转义了
grep "^\w$" test[1-2].log

// 这里可以匹配到kalpa和Kalpa KALPA。。因为忽略大小写
// 因为加了-n 会显示行号
grep "kalpa" test.log -i -n 

// 只显示每个文件中匹配的次数而不显示具体内容
grep "kalpa" test.log -c
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值