Comandos Linux

Comando Linux tr

Comando Linux tr
No Linux, “tr” é uma ferramenta integrada que pode “traduzir, comprimir e / ou excluir caracteres da entrada padrão, gravando na saída padrão” (da página do manual).

A partir da descrição oficial, é fácil entender o valor desta ferramenta. O Linux vem com uma grande coleção de ferramentas integradas. Existem alguns especiais que são muito úteis para manipulação de texto. Já cobrimos vários deles, como Vim, Nano, awk, sed e outras ferramentas.

Para aqueles que trabalham com textos regularmente, “tr” definitivamente será muito, muito útil. Este artigo ilustrará o uso mais comum de “tr” com exemplos suficientes.

Nota: O tutorial vai usar uma tonelada de arquivos fictícios com conteúdo aleatório. Todas as strings aleatórias são geradas por Aleatório.org.

Localização

qual tr

Este é o caminho completo da ferramenta de comando “tr”.

Uso básico

Para usar a ferramenta “tr”, você deve usar a seguinte estrutura de comando.

tr [SET1] [SET2]

Existem diferentes opções e maneiras de manipular os textos usando “tr”. Primeiro, vamos verificar este arquivo de demonstração.

demonstração de gato.TXT

Todos os caracteres estão em minúsculas, certo? Vamos transformá-los em maiúsculas!

demonstração de gato.txt | tr [: inferior:] [: superior:]

Aqui, o primeiro parâmetro de “tr” indica a realização de uma tradução em todos os caracteres minúsculos da entrada. A segunda parte diz para transformá-los em maiúsculas na saída.

Agora vamos fazer o oposto.

demonstração de gato 1.TXT

demonstração de gato 1.txt | tr [: superior:] [: inferior:]

Também há outra maneira de realizar a mesma tarefa. Vamos dar uma olhada.

demonstração de gato.txt | tr [a-z] [A-Z]

Agora, em vez de dizer a “tr” para traduzir maiúsculas para minúsculas ou minúsculas para maiúsculas, dissemos para identificar as entradas correspondentes ao intervalo de “a” a “z” e traduzir em seu equivalente do intervalo “A” a “Z”.

Este método semelhante também pode ser usado para converter maiúsculas em minúsculas.

demonstração de gato 1.txt | tr [A-Z] [a-z]

Brincando com números

Vimos como traduzir maiúsculas para minúsculas, certo? É hora de brincar com os dígitos.

Usando o seguinte comando, podemos traduzir facilmente todos os dígitos (0-9) em seus caracteres equivalentes!

gato demo_digit.TXT

gato demo_digit.txt | tr [0-9] [a-z]

Impressionante! Que tal letras maiúsculas?

gato demo_digit.txt | tr [0-9] [A-Z]

Simples, mas interessante, certo? Também podemos transformar caracteres em dígitos!

cat demo_lowercase.TXT

cat demo_lowercase.txt | tr [a-z] [0-9]

Uh oh, parece que as coisas quebraram, certo? Bem, só podemos usar 'a' a 'j' para representar dígitos únicos. Se houver algum caractere fora desse limite, “tr” substituirá o caractere por ']'.

Excluindo personagens

Como a descrição oficial sugere, “tr” pode fazer mais do que apenas traduzir personagens. No exemplo a seguir, veremos como usar “tr” para excluir certos caracteres.

gato aleatório.TXT

Agora, vamos deletar todos os números do conteúdo.

gato aleatório.txt | tr -d [0-9]

Aqui, o sinalizador “-d” é para dizer a “tr” para excluir e [0-9] denotando dígitos para excluir.

Também podemos fazer isso com os personagens. O seguinte comando irámanter todos os números mas removerá todos os caracteres.

gato aleatório.txt | tr -d [a-z]

Que tal remover apenas um único caractere específico do arquivo?

cat demo_lowercase.TXT

cat demo_lowercase.txt | tr -d 'y'

Ele excluiu todas as entradas 'y' do arquivo.

Apertando caracteres repetidos

Há momentos em que um caractere é repetido sequencialmente. Se você está lidando com problemas tão irritantes, deixe "tr" cuidar disso! Usando o seguinte comando, você pode comprimir tais ocorrências. Ele essencialmente mantém a ocorrência inicial do caractere e exclui as adicionais.

Primeiro, é hora de verificar a aparência do arquivo de demonstração.

gato duplicado.TXT

Agora, passe o conteúdo para “tr”.

gato duplicado.txt | tr -s [: dígitos:]

Aqui, o parâmetro “-s” é o indicador para realizar a ação “apertar”.

Quebrando / mesclando frases

Vamos verificar o arquivo de demonstração.

duplicata de morcego.TXT

Ele contém uma frase com espaços dividindo as palavras, certo? Vamos dividir as palavras em novas linhas.

duplicata de gato.txt | tr "" "\ n"

Este comando substituiu todos os caracteres de espaço por caracteres de nova linha.

Vamos fundir a frase quebrada em uma frase longa novamente.

duplicata de morcego.TXT

duplicata de gato.txt | tr "\ n" ""

Traduzindo personagens

Assim como traduzimos caracteres antes, desta vez faremos o mesmo, mas com apenas um caractere.

demonstração de gato.TXT

Neste arquivo, vamos mudar todos os caracteres de nova linha para um ponto e vírgula.

demonstração de gato.txt | tr "\ n" ";"

Eu tive que envolver em torno de "echo". Caso contrário, ele criaria alguma saída porque o último caractere de nova linha também seria convertido em um ponto-e-vírgula.

Existe uma maneira diferente de mudar personagens. No entanto, este é mais difícil de controlar.

gato duplicado 1.TXT

gato duplicado 1.txt | tr -c 'd' 'z'

gato duplicado 1.txt | tr -c 'd' 'z'

Uau! Vamos envolver "echo" para entender melhor a saída.

echo $ (cat duplicate1.txt | tr -c 'd' 'z')

O que aconteceu aqui? Usando a sinalização “-c”, “tr” apenas manterá o personagem alvo inalterado. Em caso de incompatibilidade, todos os outros personagens serão transformados. Aqui, qualquer caractere diferente de 'b' foi substituído por 'z'.

Traduzindo strings

“Tr” também pode funcionar com cordas. Vamos realizar a substituição da corda.

gato duplicado 1.TXT

gato duplicado 1.txt | tr "duplicado" "not_duplicate"

Minha corda a ser substituída é mais curta do que a corda a ser substituída, então não cabia.

Conjuntos de caracteres

Até agora, você notou que há uma série de conjuntos de caracteres suportados por “tr”. Embora vários deles tenham sido usados ​​nos exemplos acima, outros conjuntos de caracteres também são bastante úteis. Aqui está uma lista de todas as listas de personagens suportados.

Conjuntos de caracteres POSIX

  • [: dígito:]: Dígitos 0-9
  • [: alfa:]: Alfabetos a-z e A-Z.
  • [: alnum:]: Caracteres alfanuméricos
  • [: pontuação:]: símbolos de pontuação
  • [: espaço:]: Qualquer caractere de espaço em branco, por exemplo, espaço, tabulação, FF, CR, NL, FF, etc.
  • [: maiúsculas:]: Todos os alfabetos maiúsculos
  • [: inferior:]: Todos os alfabetos em minúsculas
  • [: cntrl:]: Todos os caracteres de controle (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL etc.)

Conjuntos de caracteres adicionais

  • [A-Z]: Todos os alfabetos maiúsculos
  • [a-z]: Todos os alfabetos minúsculos
  • [0-9]: Todos os dígitos

Pensamentos finais

Existem inúmeras maneiras de todos esses recursos do “tr” beneficiarem os usuários. Eu sempre recomendo verificar todas as opções disponíveis e guias detalhados em qualquer ferramenta Linux de suas páginas de manual, informações e ajuda, pois eles podem oferecer um conhecimento mais valioso.

tr --help

homem tr

info tr

Apreciar!

Como desenvolver um jogo no Linux
Uma década atrás, poucos usuários de Linux preveriam que seu sistema operacional favorito um dia seria uma plataforma de jogos popular para videogames...
Portas de código aberto para motores de jogos comerciais
Recriações gratuitas, de código aberto e de mecanismo de jogo de plataforma cruzada podem ser usadas para jogar jogos antigos, bem como alguns dos tít...
Melhores jogos de linha de comando para Linux
A linha de comando não é apenas sua maior aliada ao usar o Linux - ela também pode ser uma fonte de entretenimento porque você pode usá-la para jogar ...