Discussion:
[shell-script] Substituição no TR mostrando caractere diferente
Alfredo Casanova atcasanova@gmail.com [shell-script]
2017-11-16 18:39:22 UTC
Permalink
Quem explica esse comportamento?

Se eu fizer:
$ echo "=/=+=" | tr '/=+' '!_-'
_!_-_

Funciona direitinho

Mas se eu inverter a ordem dos caracteres no TR:

$ echo "=/=+=" | tr '/+=' '!-_'
#!#"#

o tr substitui tanto o = como o + por caracteres que sequer estão no comando
itamarnet@yahoo.com.br [shell-script]
2017-11-16 21:45:34 UTC
Permalink
Caro Alfredo

É que na primeira estrutura vc define 3 caracteres no segundo argumento do tr: '!_-' por deixar o traço ao final, mas na segunda construção o traço funciona como indicado de intervalo, então '!-_' é ir de "!" até "_" e os 3 primeiros nessa sequência é ! , " e #

Se vc fizer:
$ echo "=/=+=" | tr '+=/' '-_!'
Vai funcionar também pois o traço está no começo, então não caracteriza intervalo.

Espero que esclareça a dúvida

[]'s
Itamar
Alfredo Casanova atcasanova@gmail.com [shell-script]
2017-11-17 18:13:22 UTC
Permalink
Obviamente! Faz todo sentido. Uso tão pouco o TR para substituições que nem
lembrei que aceitava essa formação.
Valeu, Itamar!
Post by ***@yahoo.com.br [shell-script]
Caro Alfredo
É que na primeira estrutura vc define 3 caracteres no segundo argumento do
tr: '!_-' por deixar o traço ao final, mas na segunda construção o traço
funciona como indicado de intervalo, então '!-_' é ir de "!" até "_" e os 3
primeiros nessa sequência é ! , " e #
$ echo "=/=+=" | tr '+=/' '-_!'
Vai funcionar também pois o traço está no começo, então não caracteriza
intervalo.
Espero que esclareça a dúvida
[]'s
Itamar
'T.Collons' t.collons@gmail.com [shell-script]
2017-11-17 20:30:01 UTC
Permalink
Caro Alfredo e Itamar

Se voce fizer:

echo "=/=+=" | tr '/+=' '!\-_'

Vai funcionar também pois o traço está escapado.
Post by ***@yahoo.com.br [shell-script]
Caro Alfredo
É que na primeira estrutura vc define 3 caracteres no segundo
argumento do tr: '!_-' por deixar o traço ao final, mas na segunda
construção o traço funciona como indicado de intervalo, então '!-_' é
ir de "!" até "_" e os 3 primeiros nessa sequência é ! , " e #
$ echo "=/=+=" | tr '+=/' '-_!'
 Vai funcionar também pois o traço está no começo, então não
caracteriza intervalo.
Espero que esclareça a dúvida
[]'s
Itamar
--
Pere

***@gmail.com <mailto:***@gmail.com>



<https://www.google.com/>

------------------------------------

AVIS LEGAL

Nota de confidencialitat: Aquest missatge podria contenir missatges
d'empresa i altre informació confidencial tutelada per les lleis de
Europea i altres estats, Si VostÚ el rep per error o sense ser una de
les persones esmenades a la capçalera, haurà de destruir-lo sense
copiar-lo ni revelar-l'ho o qualsevol altre acció relacionada amb el
contingut del missatge i notificar-ho per correu electrònic a l'emissor
del missatge.

Les persones o entitats que incompleixin els deures de confidencialitat
podran ésser perseguides davant dels Tribunals de Justícia sota l'empar
de la legislació civil, penal i administrativa nacional i internacional.

Gracies per la seva cooperació.

------------------------------------

LEGAL NOTICE

Confidentiality notice: This mail may include business and other
confidential information protected under the laws of and other
territories. if you are not one of the intended recipients of the
message, you are legally obliged to delete the message content.
Furthermore, you are kindly requested to report immediately the incident
to the sender.

Breach of confidentiality duties is a serious criminal offence in and
other territories. Offenders shall be legally prosecuted worldwide.

Thank you for your cooperation.
Cursos BR bambamcbreal@gmail.com [shell-script]
2017-11-17 23:08:52 UTC
Permalink
Ótima explicação, CasaNova e Itamar! Parabéns! 🍟
Post by 'T.Collons' ***@gmail.com [shell-script]
Caro Alfredo e Itamar
echo "=/=+=" | tr '/+=' '!\-_'
Vai funcionar também pois o traço está escapado.
Post by ***@yahoo.com.br [shell-script]
Caro Alfredo
É que na primeira estrutura vc define 3 caracteres no segundo argumento do tr: '!_-' por deixar o traço ao final, mas na segunda construção o traço funciona como indicado de intervalo, então '!-_' é ir de "!" até "_" e os 3 primeiros nessa sequência é ! , " e #
$ echo "=/=+=" | tr '+=/' '-_!'
 Vai funcionar também pois o traço está no começo, então não caracteriza intervalo.
Espero que esclareça a dúvida
[]'s
Itamar
--
Pere
------------------------------------
AVIS LEGAL
Nota de confidencialitat: Aquest missatge podria contenir missatges d'empresa i altre informació confidencial tutelada per les lleis de Europea i altres estats, Si VostÚ el rep per error o sense ser una de les persones esmenades a la capçalera, haurà de destruir-lo sense copiar-lo ni revelar-l'ho o qualsevol altre acció relacionada amb el contingut del missatge i notificar-ho per correu electrònic a l'emissor del missatge.
Les persones o entitats que incompleixin els deures de confidencialitat podran ésser perseguides davant dels Tribunals de Justícia sota l'empar de la legislació civil, penal i administrativa nacional i internacional.
Gracies per la seva cooperació.
------------------------------------
LEGAL NOTICE
Confidentiality notice: This mail may include business and other confidential information protected under the laws of and other territories. if you are not one of the intended recipients of the message, you are legally obliged to delete the message content. Furthermore, you are kindly requested to report immediately the incident to the sender.
Breach of confidentiality duties is a serious criminal offence in and other territories. Offenders shall be legally prosecuted worldwide.
Thank you for your cooperation.
Continue reading on narkive:
Search results for '[shell-script] Substituição no TR mostrando caractere diferente' (Questions and Answers)
9
replies
V0C3 N40 ACH4R ESTR4NH0 AG3NT3 ENT3D3R 0 QU3 E5TA E5CR1T0?
started 2010-01-08 06:37:12 UTC
piadas e charadas
Loading...