我有一个文件test.txt
,其中有一些格式化的电话号码。我正在尝试使用grep
查找包含电话号码的线路。
似乎这grep -e "[0-9]{3}-[0-9]{3}-[0-9]{4}" test.txt
不起作用并且没有结果。但grep -E "[0-9]{3}-[0-9]{3}-[0-9]{4}" test.txt
有效。所以我想知道这两个选项有什么区别。
根据man grep
:
-E, --extended-regexp 将模式解释为扩展的正则表达式(即强制 grep 表现为 egrep)。
-e pattern, --regexp=pattern 指定在搜索输入期间使用的模式:如果输入行匹配任何指定的模式,则选择该输入行。当使用多个 -e 选项指定多个模式时,或者当模式以破折号 (`-') 开头时,此选项最有用。
但我不太明白。什么是扩展正则表达式?