O comando tr é um comando básico no Linux/Unix, porém apesar disso não é muito conhecido ou utilizado com frequência.
Sua função básica é substituir (traduzir) o conteúdo de uma string (texto) recebido via entrada padrão (STDIN) de um formato para outro, ou ainda excluir caracteres.
O comando tr funciona usando dois conjuntos de conteúdo fornecidos pelo usuário. O primeiro conjunto pode ser considerado como o conjunto de caracteres original (atual) e o segundo contém os caracteres que irão ser usados na substituição/exclusão. Por exemplo, podemos trocar todas as ocorrências de um caracter em especial por outro usando o comando tr.
Sintaxe do comando:
tr [opções] conjunto1 [conjunto2]
O comando receberá dados da entrada padrão, localizará os caracteres pertencentes ao conjunto1 e os subtituirá pelos caracteres pertencentes ao conjunto2.
Onde os conjuntos são arquivos ou outras fontes de texto, que serão passadas como argumento ao comando tr via STDIN.
Opções:
-c, --complement
Usar o complemento do conjunto1 (conjunto inverso)
-d, --delete
Excluir caracteres do conjunto1, sem traduzi-los
-s, --squeeze-repeats
Substituir cada sequência de um caractere repetido listado no conjunto1 com uma única ocorrência do caractere
-t, --truncate-set1
Truncar o conjunto1 no mesmo comprimento do conjunto2
--help
Mostrar a ajuda do comando e sair
--version
Mostrar informações de versão e sair.
Como especificar os conjuntos de caracteres:
Podemos representar os conjuntos de caracteres a serem tratados pelo comando tr usando as seguintes “classes” de caracteres:
\b Backspace
\f Form feed
\n New line
\r Carriage return
\t Tabulação
\v Tabulação vertical
a-a Faixa de caracteres. Representa uma faixa de caracteres entre os caracteres apresentados, incluindo-os e em ordem ascendente, como definido pela sequência de colação do sistema
[:classe:] Representa todosos caracteres que pertençam à classe apresentada. Classes comuns são:
alnum Caracteres alfanuméricos
alpha Caracteres alfabéticos
blank Espaços em branco
digit Caracteres numéricos
graph Caracteres gráficos
lower Caracteres minúsculos
print Caracteres imprimíveis
punct Caracteres de pontuação
special Caracteres especiais
upper Caracteres em maiúsculas
xdigit Caracteres hexadecimais
Qualquer outro caractere que não foi descrito representará ele próprio.
Exemplos:
1. Substituir todas as ocorrências do caracter w por v no arquivo teste1, gerando o arquivo de saída teste2:
$ tr ‘w’ ‘v’ < teste1 > teste2
2. Colocar todos os caracteres de um arquivo chamado propaganda.txt em maiúsculas:
$ tr 'a-z' 'A-Z' < propaganda.txt > propaganda-M.txt
3. Vamos excluir todas as ocorrências do caractere # do arquivo teste.conf, gerando um novo arquivo teste2.conf. Isso poderia equivaler a descomentar todas as linhas de um arquivo de texto. Usaremos a opção -d para isso:
$ tr -d ‘#’ < teste.conf > teste2.conf
4. Vamos arrumar um arquivo que contém um erro comum: caracteres repetidos em sequência. Por exemplo, vamos transformar todas as ocorrências da string ff no caracter único f no arquivo teste1, produzindo o arquivo teste2. Usaremos a opção -s do comando (squeeze):
$ tr -s ‘ff’ < teste1 > teste2
5. Excluir todos os caracteres de um arquivo chamado memorando, exceto letras maiúsculas. Usaremos a opção -d combinada com -c, que é o complemento - siginifica que excluiremos tudo EXCETO o conjunto de caracteres que será fornecido - no caso, A-Z:
$ tr -dc ‘A-Z’ < memorando > memorando2
Há diversos outros comandos que podem ser usados para tratar arquivos dessa forma, tais como sed, awk, cut, que serão abordados em outros artigos.
Até mais!
loading...
O editor de textos vi é um dos editores mais populares no Linux, estando presente em praticamente todas as distribuições, e sendo considerado o editor padrão do sistema. É possivel usar o editor vi para criar novos arquivos de texto ou para editar...
Editor de Textos Vi 08 - Copiar, Recortar e Colar caracteres, palavras e linhas Neste vídeo vamos aprender a copiar, recortar e colar caracteres, palavras e linhas inteiras usando o editor de textos vi no Linux. É possível realizar essas operações...
Editor de Textos Vi 05 - Criar linhas, anexar textos e mudar o caso dos caracteres Vamos aprender com este vídeo a criar novas linhas de texto em um arquivo com o vi, e também a mudar o caso dos caracteres (transformar de maiúsculas em minúsculas...
Editor de Textos Vi 02 - Movimentação pela tela e substituição de caracteres Neste vídeo vamos mostrar como efetuar a movimentação do cursor pela tela no vi,e como realizar substituição de caracteres em um arquivo de texto. ...
O comando fold pode ser usado para gerar múltiplas linhas a partir de uma linha única, quebrando a linha em uma posição especificada e escrevendo na saída padrão. Por padrão, o comprimento da linha é de 80 bytes (80 caracteres). Um caractere...