• shell脚本学习(2)查找


    1 grep 用法:

    grep -F  fa      找含有fa字符的字符串

    yuyuyu@ubuntu:~$ grep -F fa < do.txt

     

    grep -i  fa      忽略大小写找含有fa字符的字符串

    yuyuyu@ubuntu:~$ grep -i fa < do.txt

     

    grep -q  fa      安安静静的找含有fa字符的字符串,没显示结果

    yuyuyu@ubuntu:~$ grep -q fa < do.txt

     

    2 unix 使用正则表达式的例子

    匹配文本行 grep

    改变输入流用sed

    字符串处理的程序语言    awk Icon Perl Python Ruby Tcl

    文件查看程序 more page pg

    文本编辑器 vi vim jove jed emacs

     

    3 正则表达式中的元字符(meta)用法,即特殊字符。

       .  匹配任何的单个字符

    grep “.” < do.txt

     

     

      * 匹配任意字符的任意长度, 放第一位则无意义

     

     

     ^ 匹配字符串开头,或者行开头

    yuyuyu@ubuntu:~$ grep "^sad" <do.txt

     

     $ 匹配字符串结尾, 或者行结尾

    yuyuyu@ubuntu:~$ grep "qb$" <do.txt

     

    [ ] 方括号表达式,匹配方括号中的任意字符

     

     [a-z] 匹配a-z的所有字符

     [^z] 不匹配z字符

     

    { } 前侧正则表达式结果重现n次

    {n,} 前侧正则表达式结果至少重现n次

    {n,m} 区间表达式, 匹配它之前的字符重现的次数区间, n至少是0 ,m至少是255

     

     4 [: :]字符集

    grep "[[:print:]]" <do.txt   可显示字符

    grep "[[:space:]]" <do.txt   空白字符

    grep "[[:xdigit:]]" <do.txt    16进制数

     grep "[[:upper:]]" <do.txt  大小字母

    grep "[[:lower:]]" <do.txt  小写字母

    grep "[[:digit:]]" <do.txt  数字字符

    grep "[[:blank:]]" <do.txt  空格与定位字符

    grep "[[:alpha:]]" <do.txt 字母字符

    grep "[[:alnum:]]" <do.txt 数字字符

    grep "[[:punct:]]" <do.txt  标点符号

     

    5 排序符 [. .]

    6 等价字符集[= =]

    7 后向引用,就 是先写个表达式 , 接着能用1~9 来引用它

    () 模式存储, 会存在特殊空间

    一开始看了觉得很难,怎么测试都没找到显示结果。

    这里通过3张图片来了解:

     grep "(adf)" <do.txt   能找出adf开头的字符串

    以第一行的   “adfasfas” 来引入引用

     

     “adfasfas”   中后面的6个字母是重复的, fas fas

     

     引用第二个空间 用2

     这样就得到一个正则表达式, 要匹配 adfasfasf 字符串了

    8使用 ^ $描点,匹配起止位置

    9  BRE优先级 高到低

    [..] [==] [::]  字符排序的方括号

    metacharacter 转义的mea字符

    []  方括号表达式

    ( ) digit  子表达式和后向引用

    *  { } 前置当个字符重现的正则表达式

     无符号  

    ^ $     描点

    ^$ 只能用来表示字符串的开头结尾, 无法匹配内嵌的换行字符。

    | 交替

    10 匹配单个字符的特殊写法

    grep "[-]" <do.txt

    grep, awk 只支持 BRE, 不支持 ERE 怪不得\  + ? 都没法用

    11 搜索两个字符串使用-e参数

     logcat |grep -e "(onEvent: 0x520)" -e"(enableAFCount)"  

     

  • 相关阅读:
    如何配置mysql的超时时间
    什么是P2P流标
    为何农历10月1号要祭祖上坟?原来有这么多讲究,你知道吗?
    “请家堂”的旧习俗不是封建迷信
    sourcetree合并分支
    mybatis sql参考
    source tree使用经验
    关于 early Z 与 z-prepass
    发现一个好工具RenderDoc
    HASHSET不能预留容量问题
  • 原文地址:https://www.cnblogs.com/mayplestory/p/11506213.html
Copyright © 2020-2023  润新知