• we
    2019-10-29
    * ? $ 分别做通配符与元字符有区别;
    
     1
  • 海绵宝宝
    2019-09-01
    尹老师
    1. grep "abc" ./input.txt 和 grep abc ./input.txt 这两个命令有什么区别?如果查找的字符串有空格怎么办?
    2. grep abcdef ./* 里面的*是正则表达式的元字符吗?我记得好像还可以grep abcdef ./a?g.txt 这样搜索,这里的* 和 ?很容易让人迷糊

    作者回复: 1 对于只搜索abc 就没有区别了, 但是grep 后面如果有除a-zA-Z0-9之外的特殊字符就可能出现匹配内容不同,例如你提到的abc中带空格的字符串,匹配的时候就需要加引号
    2 grep abcdef ./* 里面的*是通配符,这里的* 是shell解释的;“grep grep选项 文件名” 这样的格式,三个部分全部要由shell解释一遍,然后grep选项才会有grep进行处理,grep处理自己的选项是可以用正则表达式的

    
     1
  • chuwujun
    2019-12-22
    这里搜索a-z之中的一个字母

    grep -rn [a-z]
    grep -rn [a-z\]
    grep -rn \[a-z]
    grep -rn \[a-z\]
    其中前两个成功,后两个失败。为什么呢?
    展开

    作者回复: 后两个没有组成 [ ] 的特殊元字符的用法,grep把方括号当作普通字符匹配了

    
    
  • 爱乐之城
    2019-11-24
    元字符 * 匹配前面的字符任意多次,ppt 定义介绍里写的是一次。

    作者回复: 嗯,这个写法是容易引起歧义,*星号匹配它前面的字符出现0次和多次更贴切,感谢指正

    
    
我们在线,来聊聊吧