当前位置: 首页 > news >正文

Linux三剑客-grep

grep介绍

全拼: Global search REgular expression and Print out line.
作用: 文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查,打印匹配到的行。
模式: 有正则表达式的 元字符 及 文本字符 所编写出的 过滤条件;

grep命令是Linux 系统中最重要的命令之一,功能是从 文本文件或管道数据流中筛选匹配的行和数据,如果在配合正则表达式,功能十分强大,是Linux运维人员必备的命令。

grep常用命令

语法:
    grep [options] [pattern] file
    命令  参数        匹配模式  文件数量
                    -i : ignorecase,忽略字符大小写;
                    -o : 进现实匹配到的字符串本身
                    -v ,--invert-match : 显示不能被模式匹配到的行  取反
                    -E : 支持使用扩展的正则表达式元字符
                    -q , --quiet, --silen : 静默模式,即不输出任何信息
一下是一些常用参数

参数选项解释说明
-v取反
-n显示匹配的行和行号
-i不区分大小写
-c只统计匹配到的行的数量
-E使用egrep命令使用正则
--cloear=auto为grep过滤添加颜色
-w只是匹配过滤的单词
-o只输出匹配的内容

grep案例

案例1:查找 /etc/passwd 文件中的root和Root并显示行号
grep -in 'root' /etc/passwd案例2:查找 /etc/passwd 文件中又多少行中有 root 账户
grep -cw 'root' /etc/passwd案例3:查找dome2中有几行非空行
grep -vc '^$' dome2    也可以按照后面来  grep -c '.' dome2案例4:查找dome2中的内容不要空行和注释行并打印行号
grep -vn '^$' dome2 | grep -v '^#'案例5:查找dome2中的内容以A开头的行
grep '^A' dome2案例6:查找dome2中的内容以 . 结尾的行
grep '\.$' dome2案例7:查找 /etc/passwd 中允许登录的账户 (结尾已 /bin/bash的账号都允许登录)
grep '\/bin\/bash$' /etc/passwd案例8: 查找 dome2文件 任意一个3位字符 包括ou
grep '.ou' dome2案例9:查找dome2文件中 所有的小写字母
grep [a-z] dome2案例10: 查找dome2文件中 找出除了 数字以外的字符
grep [^0-9] dome2案例11:查找dome2文件中 不包含数字的行 并且 不查找空行以及备注
grep -v '[0-9]' dome2 | grep -v '^$' | grep -v '^#'

grep扩展正则表达式案例

案例1:按照扩展正则表达式  查找dome2中的内容不要空行和注释行并打印行号
grep -Evn '^$|^#' dome2 
案例2:按照扩展正则表达式  查找dome2文件中 不包含数字的行 并且 不查找空行以及备注
grep -Ev "[0-9]|^$|^#" dome2   案例3: 匹配dome2文件中的rr 1次或者多次
grep -E 'rr+' dome2案例4: 匹配dome3文件中的go?d 0次或者1次
grep -E 'go?d' dome3案例5: 查找server下面以json结尾 文件名包含m 和 c的文件
find /server/ -name '*.json' | grep -E 'm|c'案例6:查找 dome3中的grad和gead
grep -E "g(r|e)ad" dome3案例7:查找dome4中 l..e前后都有并且数据一致的行
grep -E '(l..e).*\1' dome4
(l..e)  表示一组
.*      表示匹配任意字符
\1      在这里表示调用第一个()组 也就是(l..e)  \2表示调用第二个()组 \n表示调用第n个()组案例8: 查找dome4以a开头以e结尾的所有单词
grep -Eo '\ba/a-zA-Z/*e\b' dome4
\b		单词分割
http://www.lryc.cn/news/435375.html

相关文章:

  • 备忘录模式memento
  • 5-【JavaWeb】JUnit 单元测试及JUL 日志系统
  • 多人开发小程序设置体验版的痛点
  • 【Kubernetes】常见面试题汇总(七)
  • EmguCV学习笔记 C# 11.1 DnnInvoke类
  • 论文解读 | ACL2024 Outstanding Paper:因果指导的主动学习方法:助力大语言模型自动识别并去除偏见...
  • xLSTM模型学习笔记
  • woocommerce 调用当前product_tag 为标题
  • 音视频开发:基于sdl的pcm播放器
  • [产品管理-6]:NPDP新产品开发 - 4 - 战略 - 创新支持战略,支持组织的总体创新战略(平台战略、技术战略、营销战略、知识产权战略、能力建设战略)
  • Cursor:程序员的AI助手,开启智能编程新时代
  • OpenAI 刚刚发布了新的Sora视频——实现的真人效果令人惊叹
  • 计算机视觉学习路线
  • JNPF快速开发平台在企业中的应用
  • Mysql高级篇(中)—— 索引优化
  • electron: 将网址打包成exe桌面应用
  • 【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
  • 2024/9/10 小型PLC典型应用1:含步进电机+变频器+触摸屏
  • RGB与CMYK互转
  • 滴~“TOP期刊体验卡”已到期!公认水刊的尽头,还得是你MDPI
  • ASUS华硕ROG幻16 Air 2024款锐龙AI版GA605WI,GA605WV工厂模式原厂Win11系统,含MyASUS WinRE恢复重置还原功能
  • 想入行在线教育?你必须知道的十件事
  • EasyExcel相关整理
  • 2024年【汽车驾驶员(技师)】考试题及汽车驾驶员(技师)找解析
  • [C#学习笔记]接口的特性与用法
  • java发送邮件报错,Could not connect to SMTP host: smtp.exmail.qq.com, port: 465
  • 开放式耳机有哪些好处?性价比排行前十的四款蓝牙耳机推荐
  • FreeRTOS(速记版)
  • 解锁中东市场新蓝海:Bigo社交媒体如何赋能APP广告营销优势
  • 【网络】DNS