Мне нужна команда unix, чтобы проверить, что файл имеет только символы ASCII для печати (между ASCII Hex 20 и 7E включительно).Проверьте, содержит ли файл определенные символы ASCII
Я получил команду ниже, чтобы проверить, содержит ли файл не-ASCII-символы, но не может понять мой вышеупомянутый вопрос.
if LC_ALL=C grep -q '[^[:print:][:space:]]' file; then
echo "file contains non-ascii characters"
else
echo "file contains ascii characters only"
fi
Спасибо, что ответили, но я получил это как результат $ grep -qP "[^ \ x20- \ x7E]" au26026.txt && echo "weird ASCII" || echo "clean one" grep: незаконный вариант - P use: grep [-E | -F] [-c | -l | -q] [-bhinsvwx] -e pattern_list ... [-f pattern_file. ..] [файл ...] использование: grep [-E | -F] [-c | -l | -q] [-bhinsvwx] [-e pattern_list ...] -f pattern_file ... [ файл ...] использование: grep [-E | -F] [-c | -l | -q] [-bhinsvwx] pattern [file ...] clean one – austin
Это потому, что вы используете старую ' grep'. На какой ОС вы работаете? Что вы получите, если вы скажете 'grep -version'? – fedorqui
Я использую шпатлевку, выпуская 0.60. Это то, что я должен использовать в своей работе, ни один другой вариант для доступа к файлам сервера. Результатом, который я получаю из 'grep --version', является' $ grep --version grep: незаконный вариант - - использование: grep [-E | -F] [-c | -l | -q] [-bhinsvwx ] -e pattern_list ... [-f pattern_file ...] [file ...] use: grep [-E | -F] [-c | -l | -q] [-bhinsvwx] [-e pattern_list ...] -f pattern_file ... [файл ...] use: grep [-E | -F] [-c | -l | -q] [-bhinsvwx] pattern [file ...] ' – austin