文件命令的有用替代方案

文件命令的有用替代方案

我使用以下 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

相關內容