
我使用以下 shell 語法(來自我先前的問題,由 - phemient 回答)來驗證檔案是否為 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
問題是我得到“文件包含非ascii字元”(來自shell腳本語法)即使test_file是ASCII檔案為什麼?
我還使用 file 命令測試該文件,這就是我得到的
file test_file
Non-ISO extended-ASCII English text" its also ASCII file
我的問題:如何更改 shell 語法以支援“非 ISO 擴展 ASCII 英文文本”?
所以我將從 shell 腳本中獲得列印“文件僅包含 ascii 字元”
remark the solution must be for Linux and solaris
謝謝
答案1
嗨我會使用類似的東西:
#!/bin/bash
if [[ `file -b $1` == "ASCII text" ]] ; then
echo "file contains ascii characters only"
else
echo "file contains non-ascii characters"
fi
好像:
$ filetest.sh 1.txt
file contains ascii characters only
$ filetest.sh PHOTOS/HPIM0532.jpg
file contains non-ascii characters