• grep命令及正则


    文本查找

    grep,egrep,fgrep

    grep :Global Research

      根据模式搜索文本,并将符合模式的文本行显示出来

    模式:Pattern,文本字符和正则的元字符组合而成匹配条件

    grep  'root'  /etc/passwd

      -i :ignore case,忽略大小写

      --color,高亮输出

      -v:反向匹配,显示没有被模式匹配到的行

      -o:只显示被模式匹配到的字符串

    *:任意长度的任意字符

    ?:任意单个字符

    []:

    [^]:指定范围外的

    正则:Regular Expression,RegExp

    元字符:

    . :匹配任意单个字符

    grep 'r..t' /etc/passwd

    [] :匹配指定范围内的任意单个字符

    [^] :匹配指定范围外的任意单个字符 

      字符集:[:digit:],[:lower:],[:upper:],[:punct:],[:space:],[:alpha:],[:alnum:]

    匹配次数(贪婪模式):

    * :匹配其前面的字符任意次

      a*b

      a.*b

      a?b

    .* :任意长度的任意字符

    ? : 匹配其前面的字符1次或0次

    {m,n} :匹配其前面的字符至少m次,至多n次

      {1,} :至少1次

      {0,3}:0~3次

    grep  'a{1,}b'  test.txt  :a至少1次,接b

    位置锚定:

    ^:锚定行首,此字符后面的任意内容必须出现在行首

    grep '^r..t' /etc/passwd

    $:锚定行尾,此字符前面的任意内容必须出现在行尾

    grep 'w$' /etc/inittab :以w结束的行

    grep 'b..h$' /etc/inittab :以 b..h结尾的行

    ^$:空白行

    grep '^$' /etc/inittab :匹配空白行 

    grep '[[:digit:]]$' /etc/inittab :以数字结尾的行

    grep '[[:space:]]$' /etc/inittab :以空白字符结尾的行

    <或 :其后面的任意字符必须作为单词的首部出现

    >或 :其前面的任意字符必须作为单词的尾部出现

    <root>

    grep 'root>' test2.txt :root出现在词尾

    grep '<root' test2.txt :root出现在词首

    分组:

    ()

    (ab)*

    grep '(ab)*'  test.txt  :ab出现任意次

    后向引用

      1:引用第1个左括号以及与之对应的右括号所包括的所有内容

      2:

      3:

    grep '(l..e).*1'  test.txt :前面匹配l..e ,后面引用l..e

    行中出现任意一数字([0-9]),中间跟任意字符.*,行尾以相同数字结尾1$

    grep '([0-9]).*1$' /etc/inittab :前面匹配[0-9] ,后面引用[0-9]

  • 相关阅读:
    [LintCode] Trapping Rain Water II
    [LintCode] Coins in a Line III
    [CTCI] 子串判断
    [CTCI] 最大子方阵
    [LintCode] Number of Islands II
    [LeetCode] Different Ways to Add Parentheses
    adroid 目录
    android AsyncTask实例
    android viewpager 图片翻页例子
    Android横竖屏切换重载问题与小结
  • 原文地址:https://www.cnblogs.com/isunny/p/5873980.html
Copyright © 2020-2023  润新知