Ksh
如何只輸出a-z;A-Z;0−9;|一種−和;一種−從;0−9;|a-z;A-Z;0-9;|字元與 ksh?
我怎樣才能“白名單”/只輸出(英文)az;AZ;0-9;| ksh/OpenBSD 5.3 中的字元和空格?
$ echo 'ASDF"`date`ew � kd A | A' ASDF"`date`ew � kd A | A $ echo 'ASDF"`date`ew � kd A | A' | MAGIC ASDFdateew kd A | A
所以**問:**需要魔法 :)
更新:
echo 'a|d' | LC_ALL=EN tr -dc '[:alnum:][:space:]|' a|d
這在控制台中有效,但如果我把它放在 CGI 腳本中,那麼它會輸出:
a7Cd
為什麼?
echo 'áé{D`AS' | LC_ALL=C tr -cd '[:alnum:]|'
(請注意,它還將刪除附加的換行符
echo
)。
LC_ALL
修復了確定哪些字元是什麼以及哪些被認為是字母或數字的*語言環境。*在 C 語言環境中,字元是單字節並且alnums
是 ASCII 字元 A 到 Z、a 到 z 和 0 到 9。