Articles

Folosind comanda tr în Linux pentru a juca cu caractere

Posted by admin

comanda tr în Linux traduce un set de caractere în altul. Poate înlocui un caracter sau un set de caractere cu un alt caracter sau set de caractere. tr citește intrarea de la intrarea standard și afișează ieșirea la ieșirea standard. De asemenea, intrarea poate fi dată într-un fișier sau folosind comanda echo.

tr este prescurtarea de la translate.,

formatul standard pentru tr comanda este :

$ tr 

pe Baza opțiunii(e) de specificat tr comandă înlocuiește setul de caractere în „1” cu „2”.

înlocuirea caracterelor

pentru a înlocui caracterele folosind comanda tr menționați pur și simplu caracterele care trebuie înlocuite în primul set și caracterele care urmează să fie puse la locul lor după înlocuirea în al doilea set.

$ tr 'a' '1'

această comandă va aștepta intrarea de la STDIN., După obținerea intrării, ieșirea pe ecran va apărea cu toate instanțele ” a „înlocuite cu „1”.

Folosind echo cu tr comanda

exemplul De mai sus se citește de intrare de la STDIN. Comanda Echo poate furniza intrare împreună cu comanda tr. Utilizați operatorul Pipe ( / ) pentru a rula comenzile împreună.,

$ echo "apples and bananas" | tr 'a' '1'

Luarea de intrare dintr-un fișier

tr puteți lua, de asemenea, de intrare dintr-un fișier. Acest lucru este util atunci când traducerea se va face pe o colecție voluminoasă de text. Redirection (<) operatorul este folosit pentru a da de intrare dintr-un fișier.

$ tr 'a' '1' < input.txt

de intrare.txt conține același text ca exemplul de mai sus.,

pentru a salva textul într-un fișier utilizați redirecționarea(>) operator pentru a redirecționa ieșirea într-un fișier.

$ tr 'a' '1' < input.txt > output.txt

schimbarea cazului textului cu comanda tr

una dintre cele mai frecvente utilizări ale comenzii tr este traducerea textului de la litere mici la majuscule sau invers.deoarece tr funcționează pe seturi de caractere, putem menționa în mod explicit setul de caractere minuscule ca set 1 și setul de caractere majuscule ca set 2 pentru a face comutatorul.,

$ echo "apples and bananas" | tr a-z A-Z

setul a-z reprezintă setul de litere mici și setul A-Z reprezintă setul de Litere Mari.un alt mod de a face același lucru este:

$ echo "apples and bananas" | tr 

aici, reprezintă setul de alfabete minuscule și reprezintă setul de alfabete majuscule.

Ștergerea caracterelor cu tr

tr are capacitatea de a șterge un set de caractere de text. Acest lucru se realizează prin utilizarea tr împreună cu comanda-D.,

$ echo "apples and bananas" | tr -d 'n'

această comandă va elimina toate aparițiile lui ” n ” din text.

Pentru a elimina evenimente de mai multe caractere, menționa toate personajele într-un singur citat.

$ echo "apples and bananas" | tr -d 'na'

Aceasta comanda va elimina apariții de ” n ” și ” a ”

Din tr funcționează la nivel de caracter, toate apariții individuale de ” n ” și ” o ” sunt eliminate., Este ușor să fie confundat și cred că comanda va elimina numai aparițiile de ” na ” care apar în această secvență. Cu toate acestea, nu este cazul.

strângeți mai multe apariții într-una

stoarcerea mai multor apariții într-una poate fi utilă pentru a comprima textul. Este adesea folosit pentru a elimina instanțele de spațiu multiplu între linii.

-opțiunea S este utilizată cu tr pentru a stoarce.,

$ echo "apples and bananas" | tr -s 'p'

mai Multe evenimente de ” p ” în apple au fost reduse la un singur eveniment.

$ echo "apples and bananas" | tr -s 'na' '1'

ieșire din această comandă este echivalentă cu cea de prima înlocuirea evenimente de caractere ‘n’ și ‘o’ cu ‘1’, urmată de o stoarce de funcționare. Pentru a compara uita-te la a doua comandă în ieșire., Rezultatul celei de-a doua comenzi este de substituție simplă a caracterelor.

să stoarcem toate 1-urile din ieșirea celei de-a doua comenzi pentru a vedea dacă obținem aceeași ieșire ca prima.

Vom obține același rezultat ca prima comandă la ieșire.,

Pentru a elimina consecutive spații goale în text folosi :

$ echo "apples and bananas" | tr -s " " 

Alternativ poate fi folosit în loc de ” „

$ echo "apples and bananas" | tr -s 

Extragerea cifre din text

Pentru a realiza operațiuni în cazul în care numai un anumit set de caractere trebuie să fie conservate. Cel mai bine este să utilizați opțiunea-C. – c este utilizat pentru completarea setului.

complementul unui set înseamnă orice altceva decât ceea ce este în acel set.,

$ echo " Home : 011 1234 4321" | tr -cd ,'\n' 

cu Mentiunea ‘\n’ (newline) este importantă deoarece, în caz contrar rezultatul nu are o linie nouă și se amestecă-up cu linia următoare în terminal. Un alt motiv pentru a nu ignora liniile noi în timp ce ștergeți caracterele este că fișierul dvs. ar putea avea mai multe cifre în mai multe linii. Dacă caracterul newline este șters, atunci toate numerele vor apărea împreună fără niciun spațiu.,

fara ‘\n’

Extragerea cuvintelor din text

Acest proces este exact opusul a cea realizată de mai sus. Aici vom ignora cifrele și ne vom concentra doar pe cuvinte formate din litere.

$ echo " Home : 011 1234 4321" | tr -d 

In acest exemplu, avem pur și simplu elimină toate cifrele din text.un mod mai controlat de a face același lucru ar fi prin complement.,

$ echo " Home : 011 1234 4321" | tr -cd ,'\n'

reprezintă un set de alfabete. Gândiți-vă la ea ca la o colecție a celor două seturi, inferioare și superioare.

 = + 

numărarea numărului de apariții ale cuvintelor

numărarea de câte ori apare un cuvânt într-un text poate fi utilă pentru a construi histograme. De asemenea, este foarte util în construirea de modele probabilistice pentru detectarea spamului prin e-mail.mai întâi, să creăm un fișier cu câteva cuvinte recurente.,

Uneori poate fi util să se afișeze fiecare cuvânt din text într-o nouă linie.

$ tr -cs "" "\n" < input.txt
lista poate continua. Producția a fost întreruptă pentru a se potrivi

Pentru a obține numărul de apariție pentru fiecare cuvânt utilizare:

$ tr -cs "" "\n" < input.txt | sort | uniq -c

Sort este folosit pentru a sorta lista lexicographically., uniq-c numără aparițiile individuale ale fiecărui cuvânt și scoate rezultatul ca o listă de cuvinte cu un număr.

concluzie

comanda tr este utilă pentru efectuarea traducerilor bazate pe caractere. Atunci când sunt combinate cu alte comenzi, cum ar fi sort sau Uniq, comanda tr se poate dovedi a fi foarte puternic. Citiți mai multe despre comanda tr pe pagina man. Atunci când se aplică transformări pe o linie întreagă, se poate utiliza comanda sed.

Leave A Comment