tr este un utilitar de linie de comandă în Linux și Unix, care se traduce, șterge, și de a strange caractere de la intrarea standard și scrie rezultatul la ieșirea standard.

comanda tr poate efectua operații precum eliminarea caracterelor repetate, conversia majusculelor în litere mici și înlocuirea și eliminarea caracterelor de bază. De obicei, este utilizat în combinație cu alte comenzi prin conducte.,

în acest tutorial, vă vom arăta cum să utilizați comanda tr prin exemple practice și explicații detaliate ale celor mai comune opțiuni.

Cum se utilizează tr Comanda #

sintaxa pentru tr comanda este după cum urmează:

tr OPTION... SET1 

tr acceptă două seturi de caractere, de obicei, cu aceeași lungime, și înlocuiește caractere din primele seturi cu caractere corespunzătoare din cel de-al doilea set.,

A SET este de fapt un șir de caractere, inclusiv caractere speciale backslash-a scăpat.

În exemplul următor, tr va înlocui toate caractere de la intrarea standard (linuxize), prin identificarea cu personajele din primul set cu potrivire cele din al doilea set.,

echo 'linuxize' | tr 'lin' 'red'

Fiecare apariție a l este înlocuit cu r, i cu e, și n cu d:

reduxeze

setul De caractere poate fi, de asemenea, definit prin caractere variază., De exemplu, în loc de a scrie:

echo 'linuxize' | tr 'lmno' 'wxyz'

utilizare:

echo 'linuxize' | tr 'l-n' 'w-z'

-c (--complement) opțiune este utilizată, tr înlocuiește toate caracterele care nu sunt în SET1.

În exemplul de mai jos, toate personajele, cu excepția „li” va fi înlocuit cu ultimul caracter din al doilea set:

echo 'linuxize' | tr -c 'li' 'xy'
liyyyiyyy

Cum poate ați observat, de ieșire de mai sus mai are un vizibil caracter decât cel de intrare., Acest lucru este pentru că echo comanda printuri de un invizibil newline \n care este, de asemenea, înlocuit cu y. Pentru a echo un șir fără o linie nouă, utilizați opțiunea -n.

-d (--delete) opțiunea spune tr pentru a șterge caracterele specificate în SET1. Când ștergeți caracterele fără stoarcere, specificați un singur set.,

comanda De mai jos va elimina l, i și z caractere:

echo 'Linuxize' | tr -d 'liz'

L personaj nu este șters pentru intrare include o majuscule L în timp ce l character SET este scris cu litere mici.

Lnuxe

-s (--squeeze-repeats) opțiune înlocuiește o secvență de evenimente repetate cu setul de caractere în ultimul SET.,

În exemplul următor, tr elimină repetate spațiu de caractere:

echo "GNU \ Linux" | tr -s ' '
GNU \ Linux

Când SET2 este folosit secvența de caractere specificat în SET1 este înlocuit cu SET2.

echo "GNU \ Linux" | tr -s ' ' '_'
GNU_\_Linux

-t (--truncate-set1) opțiunea de forțe tr pentru a trunchia SET1 la lungimea de SET2 înainte de a face o prelucrare ulterioară.,

în mod implicit, dacă SET1 este mai mare decât SET2 tr va reutiliza ultimul caracter de SET2. Aici este un exemplu:

echo 'Linux ize' | tr 'abcde' '12'

ieșire indică faptul că personajul e de la SET1 este corelată cu cea a personajului de SET2, care este 2:

Linux iz2

Acum, utilizați aceeași comandă cu -t opțiune:

echo 'Linux ize' | tr -t 'abcde' '12'
Linux ize

puteți vedea că ultimele trei caractere ale SET1 sunt eliminate., SET1 devine „ab”, aceeași lungime ca SET2, și nu se face nici o înlocuire.

combinarea opțiunilor #

comandatr vă permite, de asemenea, să combinați opțiunile sale. De exemplu, următoarea comandă prima înlocuiește toate personajele, cu excepția i cu 0 și apoi strange repetate 0 caractere:

echo 'Linux ize' | tr -cs 'i' '0'
0i0i0

Tr Exemple de Comandă #

În această secțiune, vom acoperi câteva exemple de utilizări comune a tr comandă.,

convertește minuscule în majuscule #

convertirea minuscule în majuscule sau invers este unul dintre cazurile tipice de utilizare ale comenziitr. meciuri toate caracterele minuscule și meciuri toate majuscule.

echo 'Linuxize' | tr '' ''
LINUXIZE

în Loc de clase de caractere, puteți utiliza, de asemenea, variază:

echo 'Linuxize' | tr 'a-z' 'A-Z'

Pentru a converti majuscule la litere mici, pur și simplu a comuta locuri de seturi.,

Elimina toate caractere non-numerice #

comanda următoare elimină toate caractere non-numerice:

echo "my phone is 123-456-7890" | tr -cd 

standuri pentru toate cifre de caractere, și prin utilizarea -c opțiune, comanda elimină toate non-cifre de caractere.,va arata astfel:

1234567890

Pune fiecare cuvânt într-o linie nouă #

Pentru a pune fiecare cuvânt într-o nouă linie, avem nevoie pentru a se potrivi toate non-caractere alfanumerice și să le înlocuiască cu o nouă linie:

echo 'GNU is an operating system' | tr -cs '' '\n'
GNUisanoperatingsystem

Elimina linii goale #

Pentru a șterge linii goale pur și simplu stoarce repetitive newline caractere:

tr -s '\n' < file.txt > new_file.txt

În comanda de mai sus suntem folosind simbolul redirecționare < pentru a trece la conținutul file.txt la tr comandă., Redirecționarea >scrie ieșirea comenzii la new_file.txt.

Print $CALEA de directoare de pe o linie separată #

$PATH mediu variabil este un colon-delimitat lista de directoare care spune shell care directoare pentru a căuta fișierele executabile atunci când tastați o comandă.,

Pentru a imprima fiecare director de pe o linie separată trebuie să se potrivească colonului (:) și înlocuiți-l cu noua linie:

echo $PATH | tr ':' '\n'
/usr/local/sbin/usr/local/bin/usr/sbin/usr/bin/sbin/bin

Concluzie #

tr este o comandă pentru traducerea sau ștergerea de caractere.deși este foarte util, tr poate funcționa numai cu caractere unice. Pentru mai complex model de potrivire și de manipulare șir, ar trebui să utilizați sed sau awk .

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *