Android

Tr-komento linuxissa esimerkkien avulla

Powershell tutoriaali osa 1 (muuttujat, if/else)

Powershell tutoriaali osa 1 (muuttujat, if/else)

Sisällysluettelo:

Anonim

tr on Linux- ja Unix-järjestelmissä komentorivi-apuohjelma, joka kääntää, poistaa ja puristaa merkkejä vakiotulosta ja kirjoittaa tuloksen vakiotulosteeseen.

tr komento voi suorittaa toimintoja, kuten toistuvien merkkien poistaminen, isojen kirjaimien muuttaminen pieniksi ja perusmerkkien korvaaminen ja poistaminen. Tyypillisesti sitä käytetään yhdessä muiden komentojen kanssa putkiston kautta.

Tässä opetusohjelmassa me näytämme kuinka käyttää tr komentoa käytännön esimerkkien ja yksityiskohtaisten selitysten avulla yleisimmistä vaihtoehdoista.

Kuinka käyttää tr komentoa

tr komennon syntaksi on seuraava:

tr OPTION… SET1

tr hyväksyy kaksi merkkisarjaa, yleensä samanpituisia, ja korvaa ensimmäisten sarjojen merkit vastaavilla merkillä toisesta sarjasta.

SET on periaatteessa merkkijono, joka sisältää erityiset alaviivalla karkotut merkit.

Seuraavassa esimerkissä tr korvaa kaikki merkit normaalitulosta (linuxize) kartoittamalla ensimmäisen ryhmän merkit vastaavilla toisen ryhmän merkillä.

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

Jokainen l esiintymä korvataan r , i llä e : llä ja n llä d : llä:

reduxeze

Merkkijoukot voidaan myös määritellä merkkialueilla. Esimerkiksi kirjoittamisen sijasta:

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

voit käyttää:

echo 'linuxize' | tr 'ln' 'w-z'

Kun -c (- --complement ) -vaihtoehtoa käytetään, tr korvaa kaikki merkit, joita ei ole SET1: ssä.

Alla olevassa esimerkissä kaikki merkit paitsi “li” korvataan toisen sarjan viimeisellä merkillä:

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

liyyyiyyy

Kuten olet ehkä huomannut, yllä olevalla ulostulolla on yksi näkyvämpi merkki kuin tulolla. Tämä johtuu siitä, että echo komento tulostaa näkymättömän rivin merkin joka myös korvataan y . Kaikuaksesi merkkijono ilman uutta riviä, käytä -n vaihtoehtoa.

-d (- poista) -vaihtoehto käskee tr poistamaan SET1: ssä määritetyt merkit. Kun poistat merkkejä puristamatta, määritä vain yksi sarja.

Seuraava komento poistaa l , i ja z merkit:

echo 'Linuxize' | tr -d 'liz'

L merkkiä ei poisteta, koska syötteessä on iso L kun taas SET-kirjaimen l merkki on pieni.

Lnuxe

-s (- --squeeze-repeats ) -vaihtoehto korvaa toistuvien esiintymien sarjan viimeisen SET-merkin kanssa.

Seuraavassa esimerkissä tr poistaa toistetut välilyönnit:

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

GNU \ Linux

Kun käytetään SET2: ta, SET1: ssä määritetty merkkijono korvataan SET2: lla.

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

GNU_\_Linux

Optio -t (- --truncate-set1 ) pakottaa tr katkaisemaan SET1: n SET2: n pituuteen ennen jatkojalostusta.

Oletusarvoisesti, jos SET1 on suurempi kuin SET2, tr käyttää uudelleen SET2: n viimeistä merkkiä. Tässä on esimerkki:

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

Tulos osoittaa, että SET1: n merkki e vastaa SET2: n uusinta merkkiä, joka on 2 :

Linux iz2

Käytä nyt samaa komentoa -t vaihtoehdon kanssa:

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

Linux ize

Voit nähdä, että SET1: n kolme viimeistä merkkiä on poistettu. SET1: stä tulee 'ab', saman pituinen kuin SET2: ta, eikä mitään korvata.

Yhdistä vaihtoehtoja

tr komento antaa myös mahdollisuuden yhdistää sen vaihtoehdot. Esimerkiksi seuraava komento korvaa ensin kaikki merkit paitsi i merkillä 0 ja puristaa sitten toistetut 0 merkkiä:

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

0i0i0

Tr-komentoesimerkkejä

Tässä osassa kerromme muutamia esimerkkejä tr komennon yleisistä käytöistä.

Muunna pienet kirjaimet isoiksi

Pienten kirjainten muuntaminen isoiksi tai käänteisiksi on yksi tr komennon tyypillisistä käyttötapauksista. vastaa kaikkia pieniä kirjaimia ja vastaa kaikkia isoja kirjaimia.

echo 'Linuxize' | tr '' ''

LINUXIZE

Hahmoluokkien sijasta voit käyttää myös alueita:

echo 'Linuxize' | tr 'az' 'A-Z'

Voit muuntaa isot ja pienet kirjaimet yksinkertaisesti vaihtamalla sarjojen paikat.

Poista kaikki muut kuin numeeriset merkit

Seuraava komento poistaa kaikki ei-numeeriset merkit:

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

tarkoittaa kaikkia numeromerkkejä, ja -c vaihtoehdon avulla komento poistaa kaikki muut kuin merkit. Tulos näyttää tältä:

1234567890

Laita jokainen sana uudelle riville

Jotta jokainen sana asetetaan uudelle riville, meidän on sovittava kaikki ei-aakkosnumeeriset merkit ja korvattava ne uudella rivillä:

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

GNU is an operating system

Poista tyhjät rivit

Poista tyhjät rivit puristamalla toistuvat rivin merkit:

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

Yllä olevassa komennossa käytämme uudelleenohjaussymbolia < jotta file.txt sisältö file.txt tr komennolle. Uudelleenohjaus > kirjoittaa komennon new_file.txt .

Tulosta $PATH -hakemistot erilliselle riville

Ympäristömuuttuja $PATH on kaksoispisteellä eroteltu luettelo hakemistoista, joka kertoo kuorelle, mitkä hakemistot etsivät suoritettavia tiedostoja komentoa kirjoitettaessa.

Jokaisen hakemiston tulostamiseksi erilliselle riville meidän on vastattava kaksoispistettä (:) ja korvattava se uudella rivillä:

echo $PATH | tr ':' '\n'

/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin

johtopäätös

tr on komento merkkien kääntämistä tai poistamista varten.

Vaikka tr on erittäin hyödyllinen, se voi toimia vain yksittäisillä merkkeillä. Monimutkaisempaan kuvioiden sovittamiseen ja merkkijonojen käsittelyyn tulisi käyttää sed tai awk .

tr-pääte