zoukankan      html  css  js  c++  java
  • grep简单用法

    语法:

    grep [-option] 文件名
    

    1.常用参数

    -c: 打印符合要求的行数 grep -c num grep.txt
    #15
    -i :忽略大小写 grep -i unix grep.tx
    # The grep command first appeared in Version 6 AT&T UNIX.
    -n:输出符合要求的行和行号 grep -ni unix grep.txt
    #295: The grep command first appeared in Version 6 AT&T UNIX.
    -v:打印不符合要求的行,即反选 grep -vi unix grep.txt
    -A:后跟数字(有无空格都可以),例如-A2 表示打印符合要求的行以及下面两行 grep -A 2 -i unix grep.txt
    -B:后跟数字,例如-B2表示打印符合要求的行以及上面两行 grep -B2 -i unix grep.txt
    -C:后跟数字,例如-C2表示打印符合要求的行以及上下各两行 grep -C2 -i unix grep.txt
    -o:只打印符合要求的内容,而非整行 grep -o -i unix grep.txt
    #UNIX
    --color 符合要求的内容加上颜色,值有auto always never grep --color=auto -i unix grep.txt
    -m num,--max-count=num匹配到num次,不再执行 grep -m 5 -i unix grep.txt|wc -l
    #5
    -w:只显示全字符合的列/td> adb devices|grep -w device

    2.正则表达式

    []匹配内容 [0-9]匹配所有包含数字的行:grep '[0-9]' text.txt
    123
    456
    hij789
    012ABC

    [15]匹配1和5
    [a-zA-Z]匹配所有字母:grep '[a-zA-Z]' text.txt
    指定要过滤字符出现的次数{n1,n2}
    其中n1小于n2,表示重复n1到n2次前面的字符,n2可以为空,表示大于等于n1次。
    这个命令结合-o使用,能够看到匹配结果
    grep 'l{2}' text.txt  Hello World
    grep 'l{1,}' text.txt Hello World
    grep 'l{1,4}' text.txt  Hello World
    grep -o 'l{2,}' text.txtt
    [^字符]表示匹配除[]之外的字符。注意:此时将去除完全符合的行,混合内容不会去除,空行永远匹配 grep -n '[^0-9]' text.txt   打印除纯数字以外的行
    grep -n '[^a-zA-Z]' text.txt   打印除纯字母以外的行
    grep '[^r]oo' test.txt 打印不包含r,但包含oo的行
    ^行的开头 $行的结尾 ^$表示空行 grep '^[0-9]' text.txt 打印以数字开头的行
    grep '[0-9]$' text.txt 打印以数字结尾的行
    grep '^$' text.txt 打印空行
    grep '^[^a-zA-Z]' test.txt 打印非字母开头的行
    . 表示任意一个字符
    * 0或任意个前面的字符
    .* 表示0或多个任意字符,空行也包含在内
    grep 'e..o' text.txt 把符合e和o之间有2个任意字符的行打印出来
    grep 'ooo*' file oo,ooo,oooo....
    grep '.*' /etc/passwd 全部打印

    测试文档

    #text.txt
    rot#x#0#0#/rot#/bin/bash
    operator#x#11#0#operator#/root#/sbin/nologin
    operator#x#11#0#operator#/rooot#/sbin/nologin
    roooot#x#0#0#/rooooot#/bin/bash
    1111111111111111111111111111111
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    

    示例:

    #打印包含bash的行
    grep bash text.txt 
    # 加颜色
    grep --color="auto" bash text.txt 
    # 不知道那个文件包含了想要的内容,可以使用递归-r
    grep echo -rl . #在当前目录查找带echo的文件
    #先去寻找shell文件,再从文件中匹配echo
    find . -name "*.sh" |xargs grep echo
    
  • 相关阅读:
    vue 部署到服务器
    半小时学会 Vuex 数据共享
    Vue 第一次安装 经历 vue cli 3.0
    第一次使用视频截图 ant design
    Luckysheet
    关于导出--分页
    ADO.net很重要
    委托到底是什么? (转载)
    生成流水单号
    Ext.NET 基础学习笔记07 (GridPanel用法)
  • 原文地址:https://www.cnblogs.com/csj2018/p/11979562.html
Copyright © 2011-2022 走看看