我每行都有字符串,例如:
" … “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\.$'
- $ 字符串或行的结尾
- * 零次或多次出现
- 。几乎匹配所有内容
- \ 转义字符,在本例中为 。