Ksh

如何只輸出a-z;A-Z;0−9;|一種−和;一種−從;0−9;|a-z;A-Z;0-9;|字元與 ksh?

  • August 13, 2013

我怎樣才能“白名單”/只輸出(英文)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。

引用自:https://unix.stackexchange.com/questions/86550