• Linux之grep风骚用法


    一、grep 使用场景

    根据指定的过滤条件对目标文本进行逐行匹配检查,打印匹配的行
    就是想要查找的东西 可以是普通字符串、也可是正则表达式

    语法:
    grep   [options]    [pattern]    file
    命令    参数          配置模式      文件数据
    
    • 1
    • 2
    • 3
    参数解说
    -v排除匹配结果
    -n显示匹配行与行号
    -i忽略大小写
    -c只统计匹配的行数
    -E支持使用扩展的正则表达式元字符
    –color=auto为grep过滤结果添加颜色
    -w只匹配过滤的单词
    -o只输出匹配的内容,而不是将整行内容输出
    -q: --quite, --silent:静默模式,不输出任何信息

    案例 ‘cat /etc/passwd > /tmp/test_grep.text’

    • 找出login有关的行 grep -n "login" /tmp/test_grep.text 描述
    • 查找没有login有关的行 grep -n -v "login" /tmp/test_grep.text
    • 忽略login大小写的行 grep -i "login" /tmp/test_grep.text
    • 查找root和sync有关的行 grep -E "root|sync" --color=auto /tmp/test_grep.text
    • 统计login匹配结果的行数 grep -i -c "login" /tmp/test_grep.text 输出行数
    • 找出所有的空行 grep -n "^$" /tmp/test_grep.text
    • 找出所有的非空行 grep -n -v "^$" /tmp/test_grep.text
    • 找出以#开头的行 grep -n "^#" /tmp/test_grep.text
    • 找出非以#开头的行 grep -n -v "^#" /tmp/test_grep.text
    • 查询非#开头 非空行的行 grep -n -v "^#" /tmp/test_grep.text | grep "^$" -v
    • 查询以点结尾的行 grep -n "\.$" /tmp/test_grep.text
    • 查询以/bin/bash结尾的行 grep -n "/bin/bash$" /tmp/test_grep.text
    • 查询以/bin/bash结尾的行 grep -n -o "/bin/bash$" /tmp/test_grep.text (仅输出 行号 /bin/bash)
    • 查询非/bin/bash结尾的行 grep -n -v "/bin/bash$" /tmp/test_grep.text
    • 找出".ac", 某几个普通字符 grep -n ".s" /tmp/test_grep.text (以带s字符 例is names等)
    • * 找出前一个字符0次或多次 grep -n "i*" /tmp/test_grep.text (以带i字符 例 is time 等)
      @
    • 找出文件中所有小写英文字母 grep -n "[a-z]" /tmp/test_grep.text
    • 找出文件中所有小写a-f A-Z字母 0-5数字 grep -n "[a-fA-Z0-5]" /tmp/test_grep.text
    • 找出文件中所有非0-5数字 grep -n "[^0-5]" /tmp/test_grep.text
      • [a-z] 匹配所有小写单个字母
      • [A-Z] 匹配所有单个大写字母
      • [a-zA-Z]匹配所有的单个大小写字母
      • [0-9]匹配所有的梳子和字母
      • [a-zA-Z0-9] 匹配所有的数字和字母
        @
    • +表示匹配前一个字符1次或多次 grep -E 扩展正则
    • 找出文件中所有chi一次或多次 grep -E "chi+" /tmp/test_grep.text
      @
    • ?匹配前一个字符0次或者1次
    • 找出文件中包含gd或者go?d 的行 grep -E "gd?d" /tmp/test_grep.text
      @
    • |正则中或者意思
    • ?匹配前一个字符0次或者1次
    • 找出文件中包含gd或者go?d 的行 grep -E "gd?d" /tmp/test_grep.text
    • 查找问价以TXT结尾 文件名包含a或x 的题目 find /data -name ".txt"|grep -E "a|x"
      @
      ()将一个或多个字符捆绑在一起,当做一个整体进行处理
    • 找出god和glad的行grep -E "good|glad" test.txtgrep -E "g(oo|la)d test.txt
    • 查找l…e 的行(一个点一个字母) grep -E "l..e" lovers.txt
      {}
    • 查找l…e 的行(一个点一个字母) grep -E "l..e" lovers.txt
    • 匹配y字符最少2次最多4次 grpe -E "y{2, 4}" test.txt

    grep -A -B -C 使用介绍
    grep -A -B -C 属于上下文控制(Context control
    使用规则如下:
    grep -A 显示匹配指定内容及之后的n行
    grep -B 显示匹配指定内容及之前的n行
    grep -C 显示匹配指定内容及其前后各n行
    示例
    $ grep -A 5 name test.txt
    搜索匹配test.txt文件中与”name”字符串匹配的行,并显示其后的5行

    看视频学习 哔哩哔哩的猿来大湿兄
    https://www.bilibili.com/video/BV1E14y147Ng

  • 相关阅读:
    11. Vue3组件的更新渲染逻辑
    Linux命令使用案例
    Python案例|Pandas正则表达式
    台式机卡死救机心情点滴记录
    VirtIO
    CentOS 安装 tomcat 并设置 开机自启动
    《软件设计师考试》易混淆知识点
    离职报告提交前一秒,再检查下这些测试思维面试题你都会了么?
    java毕业设计校园美食评价系统mybatis+源码+调试部署+系统+数据库+lw
    SAP UI5 表格数据如何导出成 Excel 文件(Table Export As Excel)
  • 原文地址:https://blog.csdn.net/a6864657/article/details/125882813