패턴을 사용하여 파일의 모든 숫자를 검색할 때 [0-9]
패턴 주위에 작은따옴표/큰따옴표를 사용하면 다른 결과가 생성됩니다.
$ cat numbers
this line has 3
this line has 4
this line has 2
this line has 8
this line has 1
$ grep [0-9] numbers
this line has 1
$ grep '[0-9]' numbers
this line has 3
this line has 4
this line has 2
this line has 8
this line has 1
[0-9]
이들그리고 의 차이점은 무엇인가요 '[0-9]'
? [a-z]
및 를 사용하여 유사한 테스트를 수행했지만 결과 '[a-z]'
는 이전 예제와 동일했습니다.
16.04.7 LTS(Xenial Xerus) 시스템에서 테스트했습니다. Mac에서 동일한 테스트를 실행하면 예상대로 작동합니다.
답변1
Arch Linux의 Bash 5.1.4나 Ubuntu 16.04에서는 재현할 수 없습니다.
$ docker run --interactive --rm --tty ubuntu:16.04 /bin/bash
# cat > numbers <<EOF
> this line has 3
> this line has 4
> this line has 2
> this line has 8
> this line has 1
> EOF
# grep [0-9] numbers
this line has 3
this line has 4
this line has 2
this line has 8
this line has 1
@Kusalananda가 올바른 생각을 가지고 있습니다, 이름이 "1"인 파일이 있을 수 있으며 따옴표가 없는 glob은 다음으로 확장됩니다 grep
.
# touch 1
# grep [0-9] numbers
this line has 1
답변:더 많은 인용문 사용™:)