Há algum tempo, tive a ideia de começar a escrever sobre ferramentas menos conhecidas, mas que são comuns no ambiente GNU/Linux. Algumas dessas ferramentas vêm do pacote CoreUtils, outras do MoreUtils e outras avulsas. O importante é tentarmos nos aprofundar no propósito dessas ferramentas e seus casos de uso.
Hoje falaremos sobre o TR! O TR foi inicialmente escrito por Douglas Mcllroy para o UNIX V4, ou seja, ele precede o Linux e o Windows em idade. Para se ter uma ideia, o UNIX em sua versão 4 foi lançado em 1973, já o Windows só veio nascer em 1985 e o Linux em 1991. Por isso, o TR trabalha de maneira um pouco diferente da maioria dos programas em linha de comando disponíveis no CoreUtils. Um detalhe interessante é que o TR não consegue abrir arquivos, ele só manipula conteúdo de texto vindo da Standard Out (saída padrão de texto), no nosso caso, será o terminal.
Para seguir este artigo, recomendo que você tenha o TR instalado em sua máquina. Se você tem Linux ou Mac instalado, ele já vem por padrão em 99% dos casos. Basta abrir o terminal e digitar:
tr --version
O TR é a abreviação de "translate" (traduzir ou substituir), então ele basicamente troca um caractere por outro, de acordo com o que você solicitar. Por exemplo, imagine um arquivo com a seguinte estrutura:
111
112
122
222
122
112
111
Para substituir todas as ocorrências do número UM pela letra A:
➜ ~ cat arquivo.txt|tr 1 A
AAA
AA2
A22
222
A22
AA2
AAA
Como podem ver, o comando "tr 1 A" substitui o caractere 1 por A, simples assim! Mas e se quiser remover o número dois do arquivo?
➜ ~ cat arquivo.txt|tr -d 2
111
11
1
1
11
111
Como podem ver, ele remove qualquer caractere que você coloque com a opção "-d". Mas o que podemos fazer de mais avançado com o TR?
Podemos converter todos os caracteres de um texto para letras maiúsculas ou minúsculas:
➜ ~ cat arquivo.txt # Arquivo Original
Ola Leitor do blog!
➜ ~ cat arquivo.txt|tr '[a-z]' '[A-Z]' # Letras em caixa alta
OLA LEITOR DO BLOG!
➜ ~ cat arquivo.txt|tr '[:lower:]' '[:upper:]' # Outra forma de deixar em caixa alta
OLA LEITOR DO BLOG!
Além disso, o TR também pode ser utilizado para aplicar outras transformações, como substituir ou remover caracteres específicos de um conjunto, ou até mesmo reorganizar os caracteres em uma ordem diferente. Com uma compreensão mais aprofundada do TR e suas funcionalidades, você pode aumentar sua produtividade ao manipular e transformar arquivos de texto no ambiente GNU/Linux.