![현재 디렉토리의 ASCII 텍스트 유형 파일만 나열하는 스크립트?](https://linux55.com/image/16582/%ED%98%84%EC%9E%AC%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%9D%98%20ASCII%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%EC%9C%A0%ED%98%95%20%ED%8C%8C%EC%9D%BC%EB%A7%8C%20%EB%82%98%EC%97%B4%ED%95%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%3F.png)
현재 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