在此命令中,我想提取类似于 *.com 或 *.net 的字符串,其中 * 不是点。我写了这个:
grep -P -E '^[^.]+\.com$ |^[^.]+\.net$' example.csv
我收到此错误:
grep: conflicting matchers specified
你能澄清一下吗?
答案1
不能同时使用 PCRE ( -P
) 和扩展正则表达式 ( )。-E
在这种情况下,似乎您根本不使用 PCRE 表达式,因此您可以删除-P
.您也不能期望在 后匹配空格$
。
将大部分表达式合并为较短的表达式:
grep -E '^[^.]+\.(com|net)$'
或者,
grep -E -x '[^.]+\.(com|net)'
该-x
选项将导致grep
仅匹配完整的行。
该表达式匹配非零数量的非点字符,后跟一个点,然后是net
or com
。