우분투 16.04를 사용하고 있습니다
노력하다:
grep '.*' file1
산출:
file nu-mber o-ne second string
노력하다:grep '.+' file1
출력이 누락되었습니다.
플러스가 작동하지 않는 이유는 무엇입니까?
답변1
당신은 말해야grep
확장 정규식을 사용하고 있습니다.
grep -E '.+' file1
기준기본 정규식grep
( 없이 사용됨 -E
)은 다음과 같습니다.확장 정규식 +
\{1,\}
일부 구현(예: GNU)에서는 \+
이를 확장으로 인식하기도 합니다(항상 사용할 수 있음 ) ..*
.
(이 특별한 경우에는 이 옵션을 사용하지 않을 때 정규식과 일치하는 하위 문자열을 찾는 grep -E .+
것과 같습니다 . 많은 시스템에서 이는 와 동등한 명령으로 제공되지만 다음과 같이 제공됩니다.grep -E .
-x
egrep
grep -E
그레이엄 지적이것은쓸모없는.)
답변2
GNU grep(Ubuntu의 기본값)을 사용하면 백슬래시를 사용하여 확장 동작을 활성화할 수도 있습니다. 예를 들어:
grep '.\+' file1
답변3
+는 확장된 정규식 메타문자라고 생각합니다. 을 사용해 보세요 egrep
.