
Ich verwende die folgende Shell-Syntax (aus meiner vorherigen Frage, beantwortet von - phemient), um zu überprüfen, ob die Datei ASCII (Text) oder ein anderes
if LC_ALL=C grep -q '[^[:print:][:space:]]' file; then
echo "file contains non-ascii characters"
else
echo "file contains ascii characters only"
fi
das Problem besteht darin, dass ich die Meldung „Datei enthält Nicht-ASCII-Zeichen“ (aus der Shell-Skriptsyntax) erhalte, auch wenn die Testdatei eine ASCII-Datei ist. Warum?
Ich teste die Datei auch mit dem Dateibefehl und das ist, was ich bekomme
file test_file
Non-ISO extended-ASCII English text" its also ASCII file
Meine Frage: Wie ändere ich die Shell-Syntax, um auch „englischen Text im erweiterten ASCII-Format, der nicht dem ISO-Standard entspricht“ zu unterstützen?
so erhalte ich vom Shell-Skript die Meldung „Datei enthält nur ASCII-Zeichen“
remark the solution must be for Linux and solaris
Danke
Antwort1
Hallo, ich würde so etwas verwenden wie:
#!/bin/bash
if [[ `file -b $1` == "ASCII text" ]] ; then
echo "file contains ascii characters only"
else
echo "file contains non-ascii characters"
fi
Sieht aus wie:
$ filetest.sh 1.txt
file contains ascii characters only
$ filetest.sh PHOTOS/HPIM0532.jpg
file contains non-ascii characters