Comando Linux Admin - tr

A seguir está a sintaxe para tr. Este comando traduz ou exclui caracteres.

tr [OPTION] SET1 [SET2]

A seguir estão os interruptores comumente usados ​​e as classes de caracteres com tr .

Comando Açao
-d Excluir
-s Aperte o texto repetido em SET1 com ocorrência única em SET2
[: alnum:] Caracteres alfanuméricos
[:alfa:] Todas as letras
[: dígito:] Todos os dígitos
[:em branco:] Todos os espaços em branco horizontais
[:espaço:] Todos os espaços em branco horizontais ou verticais
[:gráfico:] Todos os caracteres imprimíveis, não incluindo espaços
[:impressão:] Todos os caracteres imprimíveis, incluindo espaços
[: ponto:] Todos os caracteres de pontuação
[:mais baixo:] Todos os caracteres minúsculos
[:superior:] Todos os caracteres maiúsculos

tr é comumente usado para traduzir ou deletar caracteres em uma string. Pense em tr como uma alternativa mais simples ao comando substituto do sed . Lendo de stdin versus um arquivo.

Quando se pensa em usar "usar sed " ou "usar tr ", é melhor manter a filosofia simples. Se uma operação for simples em tr ; use-o. No entanto, uma vez que você comece a pensar em usar tr recursivamente, é melhor usar o comando de substituição do sed .

Normalmente, tr substituirá [SET1] por caracteres em [SET2], a menos que-dinterruptor é usado. Em seguida, os caracteres do fluxo em [SET1] serão excluídos.

Usando tr em nosso arquivo names.txt para transformar todos os caracteres minúsculos em maiúsculas -

[[email protected] Documents]# tr [:lower:] [:upper:]  < names.txt  
TED:DANIEL:101 
JENNY:COLON:608 
DANA:MAXWELL:602 
MARIAN:LITTLE:903 
BOBBIE:CHAPMAN:403 
NICOLAS:SINGLETON:203 
DALE:BARTON:901 
AARON:DENNIS:305 
SANTOS:ANDREWS:504 
JACQUELINE:NEAL:102 
[[email protected] Documents]#

Vamos transformar o caractere ":" de volta em uma guia -

[[email protected] Documents]# tr [:]  [\\t] < names.txt  
Ted Daniel  101 
Jenny   Colon     608 
Dana    Maxwell    602 
Marian      Little  903 
Bobbie      Chapman 403 
Nicolas Singleton   203 
Dale    Barton  901 
Aaron   Dennis  305 
Santos      Andrews    504 
Jacqueline  Neal    102 
[[email protected] Documents]#

E se quisesse salvar os resultados? Muito fácil usando o redirecionamento.

[[email protected] Documents]# tr [:]  [\\t]  < names.txt >> tabbedNames.txt
[[email protected] Documents]# cat tabbedNames.txt  
Ted Daniel  101 
Jenny   Colon   608 
Dana    Maxwell 602 
Marian  Little  903 
Bobbie  Chapman 403 
Nicolas Singleton   203 
[[email protected] Documents]#

Vamos usar o -s ou opção de compressão em texto mal formatado -

[[email protected] Documents]# cat lines.txt 
line 1 
line     2 
line  3 
line                      4 
line      5 
[[email protected] Documents]# tr -s [:blank:] ' ' < lines.txt >> linesFormat.txt 
[[email protected] Documents]# cat linesFormat.txt  
line 1 
line 2 
line 3 
line 4 
line 5 
[[email protected] Documents]#