【发布时间】:2020-02-26 02:59:56
【问题描述】:
grep -v mystring myfile.txt
返回 ~300KB
grep -v *mystring* myfile.txt
返回 ~7GB
....我在这里做错了什么?
【问题讨论】:
标签: terminal grep command-line-interface
grep -v mystring myfile.txt
返回 ~300KB
grep -v *mystring* myfile.txt
返回 ~7GB
....我在这里做错了什么?
【问题讨论】:
标签: terminal grep command-line-interface
你的正则表达式是错误的。默认情况下,grep 将正则表达式作为参数以及命令行标志。您尝试的*mystring* 是一个shell glob 表达式,它扩展为一组可能的包含字符串mystring 的文件名。因此,您的 grep 命令变为以下内容;假设您的文件名包含mystring
grep -v mystring1 foomystring2 foomystring3 myfile.txt
根据这些文件的内容,这可能会产生意想不到的结果。正确的方法是使用贪婪匹配量词.*
grep -v '.*mystring1.*' myfile.txt
【讨论】: