현재 디렉토리의 ASCII 텍스트 유형 파일만 나열하는 스크립트?

현재 디렉토리의 ASCII 텍스트 유형 파일만 나열하는 스크립트?

현재 UNIX 디렉토리를 검색하고 모든 파일 이름을 ASCII 텍스트로 반환하는 쉘 스크립트를 어떻게 작성할 수 있습니까?

답변1

두 세계 모두에서 가장 좋습니다: 쓸모없는 것을 사용하지 말고 병렬 호출을 트리거 xargs하므로 속도를 높이십시오 +.

find . -type f -exec file {} + | grep ASCII

답변2

현재 디렉터리의 모든 파일에 대해 'file'을 수행한 다음 'ASCII'에 대해 grep을 수행합니다.

find . -maxdepth 1 -exec file {} \; | grep ASCII

답변3

find . -type f -print0 | xargs -0 file | grep ASCII

CentOS 5에서 ASCII는 "ASCII C++ 프로그램 텍스트", "ASCII 영어 텍스트" 및 "ASCII 텍스트"와 같은 많은 것을 의미할 수 있으므로 범위를 더 좁혀야 할 수도 있습니다.

답변4

디렉토리 이름을 매개변수($1)로 가져온 다음,

ls $1 | while read name
    do
        # "file" returns file type
        file $1/$name | grep -i 'ascii' &> /dev/null

        # $? gives exit status of previous command
        if [ $? -eq 0 ]; then
            # $1/$name is your ascii file, process it here...
        fi
    done

관련 정보