최소 3개의 문자(문자 "l"로 시작)가 포함된 모든 파일을 찾아야 합니다.
나는 이것을 사용하고 있지만 3 글자 미만의 파일도 제공합니다.
LS | grep "^l"
최소 길이를 결정할 수 있습니까? 나는 문자 "?"가 정확한 길이에 사용된다는 것만 알고 있습니다.
답변1
Bash 와일드카드
정규식을 사용하지 마세요. 사용구체(bash를 사용한다고 가정).
ls l??*
설명하다
?
단일 문자를 나타냅니다.*
0개 이상의 문자를 나타냅니다.
정규식
정말로 정규 표현식을 사용하고 싶다면 다음을 사용할 수 있습니다.
ls | grep "^l...*"
설명하다
.
단일 문자를 나타냅니다..*
0개 이상의 문자를 나타냅니다.
답변2
사용할 수 있는 대체 솔루션은 다음과 같습니다 . find
그렇지 않은 경우에도 작동합니다 bash
. 이 솔루션은 문자 "l"로 시작하는 문자가 3개 이상인 모든 파일과 폴더를 찾습니다(아래 파일 전용 버전 참조).재귀적으로(아래 비재귀 참조) 아래에서 실행합니다.
find . -regex '.*/l[^/][^/][^/]*'
ㅏ비재귀적버전(현재 디렉토리에 있는 버전만 검색)은 다음과 같습니다.
find . -maxdepth 1 -regex '.*/l[^/][^/][^/]*'
폴더를 포함하지 않으려면 다음을 사용할 수 있습니다.
find . -type f -regex '.*/l[^/][^/][^/]*'
또는 (비재귀적)
find . -maxdepth 1 -regex '.*/l[^/][^/][^/]*'