grep 对满足模式的字符串进行反向匹配

grep 对满足模式的字符串进行反向匹配

我每行都有字符串,例如:

" … “es” completed."
" … “en” completed."
" … “fr” completed."

我正在尝试 grep 所有这些的逆匹配。即避免输出与模式匹配的所有行。

echo " … “es” completed." | grep -v " … “(*)” completed."
echo " … “es” completed." | grep -v " … “[*]” completed."
echo " … “en” completed." | grep -v " … “[\w]” completed."
echo " … “fr” completed." | grep -v " … “[\W]” completed."

所有这些 grep 方式仍然输出字符串,我不知道是否需要使用 -e 作为选项参数,但我没有得到想要的结果

答案1

-e PATTERN, --regexp=PATTERN 使用 PATTERN 作为模式。这可用于指定多个搜索模式,或保护以连字符 (-) 开头的模式。 (-e 由 POSIX 指定。)

是的,你应该使用-e。但也正则表达式起来,特别是双引号中的双引号、点和星号。

可以说我不想要任何以以下结尾的行完全的。

| grep -v -e '.*completed\.$'

  • $ 字符串或行的结尾
  • * 零次或多次出现
  • 。几乎匹配所有内容
  • \ 转义字符,在本例中为 。

相关内容