아래 코드에서는 오류가 발생하지만 이유를 모르겠습니다.
[name@unix ~]$cat test123
123
456
789
1011
1213
[name@unix ~]$egrep ^[0-9]{1,3}$ test123
egrep: ^[0-9]3$: No such file or directory
[name@unix ~]$egrep ^[0-9]{3}$ test123
123
456
789
[name@unix ~]$
$man egrep을 실행하면 다음이 표시됩니다.
{n}은 이전 항목과 정확히 n번 일치합니다. {n,}은 이전 항목과 n회 이상 일치합니다. {n,m}은 이전 항목과 최소 n회 일치하지만 m회 이하입니다.
답변1
{1,3}
귀하의 쉘은 다음과 같이 해석됩니다버팀대 확장, 결과적 grep
으로
grep ^[0-9]1$ ^[0-9]3$ test123
따라서 ^[0-9]3$
추가 파일 이름 매개변수가 필요합니다. 쉘이 이러한 확장을 수행하는 것을 방지하려면 항상 정규식을 인용해야 합니다.
egrep '^[0-9]{1,3}$' test123