
file 명령을 사용하면 많은 파일이 ASCII인지 또는 다른 형식인지 확인해야 합니다.
때때로 나는 file 명령에서 얻습니다.
file1: ASCII English text
때로는 file 명령과 다른 응답을 얻습니다.
file2: Non-ISO extended-ASCII English text, with very long lines
다른 구문을 가진 다른 답변이 있는지 잘 모르겠습니다.
내 질문은 다음과 같습니다
파일이 ASCII인지 확인하기 위해 다음 ksh 구문을 작성했지만
다음 구문은 ASCII 형식을 확인하기 위한 최적의 구문입니까?
[[ ` file $some_file | grep –c ASCII ` = 1 ]] && print "you have ascii file for sure"
누군가 ASCII 형식을 확실히 확인하라는 다른 제안이 있다면 매우 기쁠 것입니다.
답변1
if LC_ALL=C grep -q '[^[:print:][:space:]]' file; then
echo "file contains non-ascii characters"
else
echo "file contains ascii characters only"
fi
답변2
어때요...
if file -ib "$file" | grep -Eqs '^text/plain(;|$)'; then
echo "It's text/plain."
fi
얼마나 흔한 일인지 모르겠습니다 --mime-type
. 표준이라면 사용하십시오.
if file -b --mime-type "$file" | grep -qs '^text/plain$'; then
또는 grep -qs '^text/'
모든 텍스트 유형에 대해.
답변3
코드로 출력을 구문 분석하고 있으므로 출력되도록 -i
옵션을 사용하는 것이 좋습니다.file
몸짓 광대극대신 인간 친화적인 문자열을 입력하세요. MIME 유형 출력은 더 규칙적이므로 코드에서 처리하기가 좀 더 쉽습니다.
출력 유형에 대해서는 다음을 살펴보십시오.남자 파일말한다:
/usr/share/file/magic
Default list of magic numbers
/usr/share/file/magic.mime
Default list of magic numbers, used to output mime types
when the -i option is specified.
의 출력을 구문 분석할 때 관심을 가질 유형을 결정하려면 보고할 수 있는 모든 MIME 유형에 대한 해당 파일을 살펴보십시오 file
. 나는 당신이 관심을 가질 것이라고 생각하는 것은 MIME 유형이 text/
.