이름이 4자 길이인 파일 찾기

이름이 4자 길이인 파일 찾기

이름이 4글자밖에 안되는 파일을 찾고 싶습니다.

예를 들어 다음은 세 가지 파일입니다 /tmp.

$ ls /tmp
txt
file
linux

file출력은 길이가 4자에 불과하므로 표시되어야 합니다 .

답변1

?파일 일치에 와일드카드를 사용합니다 .

ls -d /tmp/????

이렇게 하면 파일 이름이 4자 길이인 모든 파일과 디렉터리가 인쇄됩니다.

@roaima가 제안한 것처럼 이 플래그는 이 패턴과 일치하는 하위 디렉터리의 내용이 표시되는 것을 -d방지합니다 .ls

답변2

파일만 나열 /tmp:

cd /tmp
find . ! -name . -prune -path './????' -type f

재귀적으로 파일 나열 /tmp:

find /tmp -path '*/????' -type f

답변3

노력하다:

find /tmp -type f -print| awk -F/ ' length($NF)  == 4 '

무엇 awk인가요:

  • /필드 구분자 로 사용됩니다 .
  • 파일 이름 찾기 $NF(마지막 필드)
  • 계산하다length
  • 값이 4인지 확인한 다음 인쇄하십시오.

답변4

perl(5.10 이상) 솔루션 도 있습니다 .

perl -E 'say for </tmp/????>;'

원하는 길이를 지정할 수 있는 약간 더 유연한 버전:

perl -E 'my $w = "?" x shift; say for </tmp/$w>;' 4

관련 정보