이름 어딘가에 연속된 5자리 숫자가 포함된 파일을 찾는 방법은 무엇입니까?

이름 어딘가에 연속된 5자리 숫자가 포함된 파일을 찾는 방법은 무엇입니까?

평소라면 교수님이나 반 친구들에게 이런 질문을 하곤 했는데, 토요일이라 다들 자리가 없었다. 이름에 연속된 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}'

관련 정보