【问题标题】:grep -v *string* and grep -v string creating wildly different resultsgrep -v *string* 和 grep -v string 创建截然不同的结果
【发布时间】:2020-02-26 02:59:56
【问题描述】:
grep -v mystring myfile.txt

返回 ~300KB

grep -v *mystring* myfile.txt

返回 ~7GB

....我在这里做错了什么?

【问题讨论】:

    标签: terminal grep command-line-interface


    【解决方案1】:

    你的正则表达式是错误的。默认情况下,grep 将正则表达式作为参数以及命令行标志。您尝试的*mystring* 是一个shell glob 表达式,它扩展为一组可能的包含字符串mystring 的文件名。因此,您的 grep 命令变为以下内容;假设您的文件名包含mystring

    grep -v mystring1 foomystring2 foomystring3 myfile.txt
    

    根据这些文件的内容,这可能会产生意想不到的结果。正确的方法是使用贪婪匹配量词.*

    grep -v '.*mystring1.*' myfile.txt
    

    【讨论】:

      猜你喜欢
      • 2014-06-15
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多