• grep匹配命令


    关于匹配的实例:
    统计所有包含“48”字符的行有多少行
    grep -c "48" demo.txt
     
    不区分大小写查找“May”所有的行)
    grep -i "May" demo.txt
     
    显示匹配字符“48”的行及行号
    grep -n "48" demo.txt
     
    显示输出没有字符“48”所有的行)
    grep -v "48" demo.txt
     
    显示输出以字符“48”开头,并在字符“48”后是一个tab键所在的行
    grep '48[[:blank:]]' demo.txt
     
    显示输出以字符“48”开头,第三个字符是“3”或是“4”的所有的行)
    grep "48[34]" demo.txt
     
    显示输出行首不是字符“48”的行)
    grep "^[^48]" demo.txt
     
    显示输出第一个字符以“M”或“m”开头,以字符“ay”结束的行)
    grep "[Mm]ay" demo.txt
     
    显示输出第一个字符是“K”,第二、三、四是任意字符,第五个字符是“D”所在的行)
    grep "K…D" demo.txt
     
    显示输出第一个字符的范围是“A-D”,第二个字符是“9”,第三个字符的是“D”的所有的行
    grep "[A-D][9]D" demo.txt
     
    显示第一个字符是3或5,第二三个字符是任意,以1998结尾的所有行
    grep "[35]..1998" demo.txt
     
    显示输出字符“4”至少重复出现2次的所有行
    grep "4{2,}" demo.txt
     
    显示输出字符“9”至少重复出现3次的所有行
    grep "9{3,}" demo.txt
     
    显示输出字符“9”重复出现的次数在一定范围内,重复出现2次或3次所有行
    grep "9{2,3}" demo.txt
     
    显示输出空行的行号
    grep -n "^$" demo.txt
     
    如果要查询目录列表中的目录 同:ls -d *
    ls -l |grep "^d"
     
    在一个目录中查询不包含目录的所有文件
    ls -l |grep "^[d]"
     
    查询其他用户和用户组成员有可执行权限的目录集合
    ls -l |grpe "^d…..x..x"
     
     
    假定要抽取代码为484和483的城市位置,
    #grep '48[34]' data.f
     
    如果要抽出记录,使其行首不是48,
    #grep '^[^48]' data.f
     
    抽取以L开头,以D结尾长度为5个字符的所有代码,可使用下述方法:
    #grep 'L...D' data.f
     
    查询所有以5开始以1996或1998结尾的所有记录
    #grep '5..199[68]' data.f
     
    第一个字符为任意数字,第二个字符在0到5之间,第三个字符在0到6之间:
    #grep '[0-9][0-5][0-6]' data.f
    #grep '^[0-9][0-5][0-6]' data.f #以行首开始
     
    抽取包含数字4至少重复出现两次的所有行:
    #grep '4{2,}' data.f
     
    grep命令加-E参数,这一扩展允许使用扩展模式匹配。
    例如,要抽取城市代码为219或216,方法如下:
    #grep -E '219|216' data.f
     
    结合使用^和$可查询空行。使用- n参数显示实际行数:
    #grep -n '^$' data.f
     
    匹配特殊字符查询有特殊含义的字符,诸如$.'"*[]^|+?,必须在特定字符前加。
    假设要查询包含“.”的所有行,脚本如下:
    #grep '.' data.f
    #grep '"' data.f
     
    如要查询文件名conftroll.conf(这是一个配置文件),脚本如下:
    #grep 'conftroll.conf' myfile
     
    最多六个小写字符,后跟句点,接着是两个大写字符,
    #grep '[a-z]{1,6}.[A-Z]{2}' filename.deposit
     
    grep中通配符*的使用
    #grep 'l.*s' testfile #匹配如"looks"
    #grep 'oo*' testfile #匹配如"looks"
     
    在所有文件中查询行尾包含单词device的所有行
    #grep 'device$' *
     
    查询目录列表中的目录,方法如下:
    #ls -l | grep '^d'
    在一个目录中查询不包含目录的所有文件,方法如下:
    #ls -l | grep '^[^d]'
    要查询其他用户和其他用户组成员有可执行权限的目录集合,方法如下:
    #ls -l | grep '^d.....x..x'
     
     
  • 相关阅读:
    程序员的数学基础课 时间和空间复杂度(上):优化性能是否只是“纸上谈兵”?5
    程序员的数学基础课 原来取余操作本身就是个哈希函数 4
    程序员的数学基础课 1 append
    https://www.tiobe.com/tiobe-index//
    贝多芬的《D 小调第九交响曲》
    Hive基础(11):元数据(二)分析Hive表和分区的统计信息(Statistics)
    Hive基础(10):元数据(一)Hive的元数据表结构详解
    qemu-system-aarch64: failed to find romfile "efi-virtio.rom"
    vhost + qemu-system-aarch64
    qemu-system-aarch64: -enable-kvm: No machine specified, and there is no default Use -machine help to list supported machines
  • 原文地址:https://www.cnblogs.com/momenglin/p/10630644.html
Copyright © 2020-2023  润新知