현재 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