Como produzir somente [a-z; A-Z; 0-9; |] caracteres com ksh?

0

Como posso "colocar na lista de permissões" / apenas a saída (Inglês) a-z; A-Z; 0-9; chars e espaço no 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

Então Q: MAGIC é necessário:)

ATUALIZAÇÃO:

echo 'a|d' | LC_ALL=EN tr -dc '[:alnum:][:space:]|'
a|d

Isso funciona no console, mas se eu colocá-lo em um script CGI, isso gera:

a7Cd

Por quê?

    
por gasko peter 13.08.2013 / 11:40

1 resposta

1
echo 'áé{D'AS' | LC_ALL=C tr -cd '[:alnum:]|'

(observe que ele também removerá o caractere de nova linha anexado por echo ).

LC_ALL corrige o código de idioma , que determina quais caracteres são e quais deles são considerados letras ou números. Nas localidades C, os caracteres são bytes simples e alnums são os caracteres ASCII de A a Z, de a a z e de 0 a 9.

    
por 13.08.2013 / 11:45

Tags