문자 클래스를 사용하는 방법

문자 클래스를 사용하는 방법

내 시스템 중 하나에서 실행하면 ls [:lower:]*소문자로 시작하는 모든 파일이 나열됩니다.

또 다른 경우에는 오류를 보고합니다.

ls: cannot access [:lower:]*: No such file or directory

작업 디렉터리에는 소문자로 시작하는 파일이 일부 있습니다.

ls [[:lower:]]*대신 두 시스템 모두에서 실행이 실행됩니다. ls [:lower:]*두 번째 시스템에서는 왜 작동하지 않는지, 문자 클래스를 사용하는 올바른 방법은 무엇인지 알고 싶습니다 .

둘 다 Bash를 실행하지만 다른 쉘에도 적용되는 답변을 원합니다.

답변1

첫 번째 예는 예상한 대로 수행되지 않습니다. 대신 다음 문자로 시작하는 모든 파일 이름을 나열합니다.

  • :
  • e
  • l
  • o
  • r
  • w

(이 문자는 lower재정렬된 문자입니다.) 문자 클래스를 사용하려면 이미 대괄호 안에 있어야 합니다.그런 다음[:lower:]두 번째 예와 같이 를 사용합니다 .

관련 정보