programing

\d는 grep의 기본 표현식에서는 지원되지 않습니까?

abcjava 2023. 4. 11. 21:34
반응형

\d는 grep의 기본 표현식에서는 지원되지 않습니까?

이로 인해 출력은 생성되지 않습니다.왜?

$ echo 'this 1 2 3' | grep '\d\+'

단, 다음과 같은 이점이 있습니다.

$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3

$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3

POSIX에 기재된 바와 같이grep기본적인 정규 표현을 사용합니다만,\d는 Perl-Compatible Regular Expression(PCRE; Perl 호환 정규 표현)의 일부입니다.

GNU grep 를 사용하고 있는 경우는,-PPCRE 정규 표현을 사용할 수 있도록 합니다.그렇지 않으면 POSIX에서 지정한[[:digit:]]대신 문자 클래스\d.

echo 1 | grep -P '\d'
# output: 1
echo 1 | grep '[[:digit:]]'
# output: 1

이거 드셔보세요$ echo 'this 1 2 3' | grep '[0-9]\+'

언급URL : https://stackoverflow.com/questions/6901171/is-d-not-supported-by-greps-basic-expressions

반응형