Din descrierea oficială, este ușor de înțeles valoarea acestui instrument. Linux vine cu o mare colecție de instrumente încorporate. Există unele speciale care sunt foarte utile pentru manipularea textului. Am acoperit deja câteva dintre acestea, cum ar fi Vim, Nano, awk, sed și alte instrumente.
Cei care lucrează cu texte în mod regulat, „tr” va fi cu siguranță foarte util. Acest articol va ilustra cea mai obișnuită utilizare a „tr” cu suficiente exemple.
Notă: Tutorialul va folosi o mulțime de fișiere fictive cu conținut aleatoriu. Toate șirurile aleatorii sunt generate de Aleatoriu.org.
Locație
care tr
Aceasta este calea completă a instrumentului de comandă „tr”.
Utilizare de bază
Pentru utilizarea instrumentului „tr”, trebuie să utilizați următoarea structură de comandă.
trExistă diferite opțiuni și modalități de a manipula textele folosind „tr”. La început, să verificăm acest fișier demo.
demo pentru pisici.txt
Toate personajele sunt cu litere mici, corect? Să le transformăm în majuscule!
demo pentru pisici.txt | tr [: inferior:] [: superior:]
Aici, primul parametru al „tr” indică efectuarea unei traduceri pe toate caracterele minuscule ale intrării. A doua parte ne spune să le transformăm în majuscule la ieșire.
Acum, să facem opusul.
pisică demo1.txtpisică demo1.txt | tr [: upper:] [: lower:]
Există, de asemenea, un alt mod de a efectua aceeași sarcină. Hai să verificăm.
demo pentru pisici.txt | tr [a-z] [A-Z]
Acum, în loc să spunem „tr” să traducă majuscule cu minuscule sau minuscule cu majuscule, am spus să identificăm intrările care corespund intervalului „a” la „z” și să le traducem în echivalentul lor din intervalul „A” la „Z”.
Această metodă similară poate fi utilizată și pentru a traduce majuscule în minuscule.
pisică demo1.txt | tr [A-Z] [a-z]
Joacă cu cifre
Am văzut cum să traducem majuscule cu minuscule, corect? Este timpul să vă jucați cu cifre.
Folosind următoarea comandă, putem traduce cu ușurință toate cifrele (0-9) în caractere echivalente!
cat demo_digit.txtcat demo_digit.txt | tr [0-9] [a-z]
Minunat! Ce zici de cele majuscule?
cat demo_digit.txt | tr [0-9] [A-Z]
Simplu, dar interesant, corect? De asemenea, putem transforma caracterele în cifre, de asemenea!
pisică demo_lowercase.txtpisică demo_lowercase.txt | tr [a-z] [0-9]
Oh, se pare că lucrurile s-au stricat, corect? Ei bine, putem folosi doar „de la” la „j” pentru a reprezenta cifre simple. Dacă există vreun personaj care se află în afara acestei limite, „tr” va înlocui caracterul cu ']'.
Ștergerea caracterelor
După cum sugerează descrierea oficială, „tr” poate face mai mult decât simpla traducere a personajelor. În exemplul următor, vom verifica cum să utilizați „tr” pentru a șterge anumite caractere.
pisică la întâmplare.txt
Acum, să ștergem toate numerele din conținut.
pisică la întâmplare.txt | tr -d [0-9]
Aici, semnalizatorul „-d” trebuie să spună „tr” de șters și [0-9] care indică cifre de șters.
Putem face asta și cu personajele. Următoarea comandă va păstra toate numerele, dar va elimina toate caracterele.
pisică la întâmplare.txt | tr -d [a-z]
Ce zici de eliminarea unui singur caracter specific din fișier?
pisică demo_lowercase.txtpisică demo_lowercase.txt | tr -d 'y'
A șters toate intrările „y” din fișier.
Strângerea de caractere repetate
Există momente în care un personaj se repetă secvențial. Dacă aveți de-a face cu astfel de probleme enervante, lăsați doar „tr” să se ocupe de asta! Folosind următoarea comandă, puteți stoarce astfel de apariții. În esență, păstrează apariția inițială a personajului și șterge cele suplimentare.
În primul rând, este timpul să verificați cum arată fișierul demonstrativ.
duplicat de pisică.txt
Acum, treceți conținutul la „tr”.
duplicat de pisică.txt | tr -s [: cifre:]
Aici, parametrul „-s” este indicatorul pentru efectuarea acțiunii „squeeze”.
Fărâmițarea / îmbinarea propozițiilor
Să verificăm fișierul demonstrativ.
duplicat de liliac.txt
Conține o propoziție cu spații care împart cuvintele, corect? Să împărțim cuvintele în linii noi.
duplicat de pisică.txt | tr "" "\ n"
Această comandă a înlocuit toate caracterele spațiale cu caractere de linie nouă.
Să îmbinăm din nou propoziția ruptă într-o propoziție lungă.
duplicat de liliac.txtduplicat de pisică.txt | tr "\ n" ""
Traducerea personajelor
Așa cum am tradus caractere înainte, de data aceasta vom face la fel, dar cu un singur caracter.
demo pentru pisici.txt
În acest fișier, să schimbăm toate caracterele newline într-un punct și virgulă.
demo pentru pisici.txt | tr "\ n" ";"
A trebuit să-l înfășor în jurul „ecoului”. În caz contrar, ar crea o ieșire deoarece ultimul caracter de linie nouă ar fi tradus și într-un punct și virgulă.
Există un mod diferit de a schimba personajele. Cu toate acestea, acesta este mai greu de controlat.
pisica duplicat1.txtpisica duplicat1.txt | tr -c 'd' 'z'
pisica duplicat1.txt | tr -c 'd' 'z'
Wow! Să înfășurăm „ecoul” pentru a înțelege mai bine rezultatul.
echo $ (pisica duplicat1.txt | tr -c 'd' 'z')
Ce s-a intamplat aici? Folosind steagul „-c”, „tr” va menține caracterul țintă neschimbat. În cazul nepotrivirii, orice alt personaj va fi transformat. Aici, orice caracter altul decât „b” a fost înlocuit cu „z”.
Traducerea șirurilor
„Tr” poate funcționa și cu șiruri. Să efectuăm înlocuirea șirului.
pisica duplicat1.txtpisica duplicat1.txt | tr "duplicat" "not_duplicate"
Șirul meu de înlocuit este mai scurt decât șirul cu care trebuie înlocuit, deci nu se potrivea.
Seturi de caractere
Până acum, ați observat că există o serie de seturi de caractere acceptate de „tr”. În timp ce mai multe dintre ele au fost utilizate în exemplele de mai sus, alte seturi de caractere sunt, de asemenea, destul de utile. Iată o listă cu toate listele de caractere acceptate.
Seturi de caractere POSIX
- [: cifră:]: Cifre 0-9
- [: alpha:]: Alfabete a-z și A-Z.
- [: alnum:]: caractere alfanumerice
- [: punct:]: simboluri de punctuație
- [: space:]: Orice caracter al spațiului alb, de exemplu, spațiu, filă, FF, CR, NL, FF etc.
- [: upper:]: Toate alfabetele cu majuscule
- [: lower:]: Toate alfabetele minuscule
- [: cntrl:]: Toate caracterele de control (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL etc.)
Seturi de caractere suplimentare
- [A-Z]: toate alfabetele cu majuscule
- [a-z]: toate alfabetele minuscule
- [0-9]: Toate cifrele
Gânduri finale
Există multe moduri în care toate aceste caracteristici ale „tr” pot beneficia utilizatorii. Îți recomand întotdeauna să verifici toate opțiunile disponibile și ghidurile detaliate de pe orice instrument Linux de la paginile lor de informații, de ajutor, deoarece acestea pot oferi cunoștințe mai valoroase.
tr --helpom tr
info tr
Bucurați-vă!