我有一個字串(未保存在檔案中),它可以包含 ascii 或非 ascii 字符。我想知道給定的字串在 linux 中是否包含 ascii 或非 ascii。我在命令列中傳遞字串而不是在檔案中。我嘗試使用 grep 但 grep 需要檔案而不是字串。
示例 1
輸入
abc$@
預期產出
給定的字串是 ascii。
示例 2
輸入
testt ''實驗室
預期產出
給定的字串不是 ascii。
感謝你的幫助。
謝謝
uj5u.com熱心網友回復:
如果您查看 ASCII 表,您可能會注意到它只使用 7 位來編碼它的值,盡管字符存盤在一個位元組中。永遠不會設定第 8(高)位。
我會迭代字串中的位元組并檢查第 8 位。如果有任何設定8位,那么它可能不是ASCII干凈。
但是,如果您正在撰寫 shell 腳本與 C 程式,那么您最終所做的將大不相同。這個執行緒似乎很有希望:https : //unix.stackexchange.com/questions/194435/check-whether-text-contains-non-ascii-characters-in-a-shell-script
uj5u.com熱心網友回復:
您可以使用該file命令。該命令用于確定檔案的型別。對于文本檔案,它將輸出編碼(如果有效)。
您可以將它與-b標志一起使用以僅顯示編碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/384972.html
上一篇:無法在Plesk上運行pdflatex命令(TexLive)
下一篇:Linux磁區未顯示完整大小
