평소라면 교수님이나 반 친구들에게 이런 질문을 하곤 했는데, 토요일이라 다들 자리가 없었다. 이름에 연속된 5자리 숫자가 있는 디렉토리에서 파일을 찾아야 합니다. 숫자가 오름차순이거나 내림차순일 필요는 없습니다.
답변1
와일드카드(또는 와일드카드)는 숫자 범위를 사용하여 이 작업을 수행할 수 있습니다.
ls -d /path/to/directory/*[0-9][0-9][0-9][0-9][0-9]*
이는 쉘이 /path/to/directory에서 다음으로 시작하는 파일 이름을 찾도록 지시합니다.
*
-- 무엇이든(또는 아무것도)[0-9]
-- 숫자- (4자리 더)
*
——아무거나(또는 없음)로 끝남
그런 다음 해당 파일 이름 목록을 전달하여 ls
나열합니다.
더 광범위하게 bash는 문자도 허용합니다.친절한와일드카드로 사용하므로 [0-9]가 포함되지 않는 언어의 숫자가 있는 경우 다음을 사용할 수 있습니다.
ls -d *[[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]]*
답변2
다음 방법으로 구현했는데 잘 되더라구요
find . -maxdepth 1 -type f| sed "s/\.\///g"| awk -F "." '{print $1}'|sed '/^$/d'| awk '/[0-9]/{print $0}'| awk '{print $1,gsub("[0-9]",$1)}'| awk '$2 == 5 {print $1}'