Grep

如何擷取兩個正則表達式

  • April 21, 2019

在此命令中,我想提取 *.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僅匹配完整的行。

該表達式匹配非零數量的非點字元,後跟一個點,然後是netor com

引用自:https://unix.stackexchange.com/questions/513723