Grep
如何擷取兩個正則表達式
在此命令中,我想提取 *.com 或 *.net 之類的字元串,其中 * 不是點。我寫了這個:
grep -P -E '^[^.]+\.com$ |^[^.]+\.net$' example.csv
我收到此錯誤:
grep: conflicting matchers specified
你能澄清一下嗎?
您不能同時使用 PCRE (
-P
) 和擴展正則表達式 (-E
)。在這種情況下,您似乎根本不使用 PCRE 表達式,因此您可以刪除-P
. 您也不能期望在$
.將大部分錶達式組合成一個較短的表達式:
grep -E '^[^.]+\.(com|net)$'
或者,
grep -E -x '[^.]+\.(com|net)'
該
-x
選項將導致grep
僅匹配完整的行。該表達式匹配非零數量的非點字元,後跟一個點,然後是
net
orcom
。