tr în Linux / Bash

Procesare și filtrare text POSIX / GNU Coreutils

Translatează, șterge sau comprimă caractere specifice din fluxul de intrare standard.

Sintaxă comandă
tr [opțiuni] SET1 [SET2]

Ce face tr

Comanda tr (translate) funcționează exclusiv prin intrarea standard (nu acceptă nume de fișiere ca parametri, ci citește din pipe sau redirecționare <).

Este optimizată pentru conversii rapide la nivel de caracter: transformare de litere mici în majuscule, eliminarea caracterelor de control Windows (\r) sau înlocuirea spațiilor cu linii noi.

Opțiuni și argumente

Opțiune / Parametru Descriere
-d, --delete Șterge caracterele specificate în SET1 fără a le mai înlocui.
-s, --squeeze-repeats Comprimă aparițiile multiple consecutive ale unui caracter într-unul singur.
-c, --complement Alege complementul mulțimii SET1 (toate caracterele care NU sunt în SET1).

Exemple

Exemplul 1: Conversia textului în majuscule

Translatăm caracterele a-z în A-Z.

echo "salut lume" | tr 'a-z' 'A-Z'

Rezultat

SALUT LUME

Exemplul 2: Ștergerea caracterelor nedorite (cifre)

Opțiunea -d elimină instantaneu toate cifrele din text.

echo "Cod123Secret456" | tr -d '0-9'

Rezultat

CodSecret

Greșeli frecvente

  • Încercarea de a pasa fișierul direct ca parametru (ex. tr a A fisier.txt, ceea ce dă eroare; corect este tr a A < fisier.txt).

Comenzi înrudite

  • sed: Editor de flux (stream editor) pentru transformarea, înlocuirea și filtrarea automată a textului.
  • awk: Limbaj de procesare a textului structurat pe coloane, ideal pentru rapoarte și extragere de date.
  • cut: Decupează secțiuni, coloane sau intervale de caractere din fiecare linie de text.