반응형
\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 를 사용하고 있는 경우는,-P
PCRE 정규 표현을 사용할 수 있도록 합니다.그렇지 않으면 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
반응형
'programing' 카테고리의 다른 글
다른 블록을 시작하기 전에 두 개의 비동기 블록이 실행될 때까지 기다리는 중 (0) | 2023.04.11 |
---|---|
NSUserDefaults에 문자열을 저장하시겠습니까? (0) | 2023.04.11 |
MongoDB, 어레이에서 객체 삭제 (0) | 2023.04.06 |
Oracle이 제약 조건을 발견하다 (0) | 2023.04.06 |
아이디 대신 우편명으로 우편물을 받다 (0) | 2023.04.06 |