각 줄에 문자열이 있습니다. 예를 들면 다음과 같습니다.
" … “es” completed."
" … “en” completed."
" … “fr” completed."
나는 이들 모두의 역 일치를 찾으려고 노력하고 있습니다. 즉, 패턴과 일치하는 모든 행을 출력하지 마십시오.
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\.$'
- $ 문자열 또는 줄의 끝
- * 0개 이상의 발생
- . 거의 모든 것과 일치합니다
- \ 이스케이프 문자(이 경우에는 )입니다.