Virallisesta kuvauksesta on helppo ymmärtää tämän työkalun arvo. Linux tarjoaa suuren kokoelman sisäänrakennettuja työkaluja. On joitain erityisiä, jotka ovat erittäin hyödyllisiä tekstinkäsittelyssä. Olemme jo käsitelleet useita niistä, kuten Vim, Nano, awk, sed ja muut työkalut.
Ne, jotka työskentelevät tekstien kanssa säännöllisesti, "tr" on ehdottomasti todella hyödyllinen. Tämä artikkeli havainnollistaa "tr": n yleisintä käyttöä riittävillä esimerkeillä.
Huomaa: Opetusohjelmassa käytetään tonnia satunnaisen sisällön nukkeja. Kaikki satunnaiset merkkijonot luodaan Satunnainen.org.
Sijainti
mikä tr
Tämä on “tr” -komennotyökalun koko polku.
Peruskäyttö
"Tr" -työkalun käyttämiseen on käytettävä seuraavaa komentorakennetta.
trOn olemassa erilaisia vaihtoehtoja ja tapoja käsitellä tekstejä käyttämällä "tr". Aluksi katsotaanpa tämä demotiedosto.
kissan esittely.txt
Kaikki merkit ovat pieniä, oikealla? Muunnetaan ne suuriksi kirjaimiksi!
kissan esittely.txt | tr [: alempi:] [: ylempi:]
Tässä tr: n ensimmäinen parametri osoittaa käännöksen suorittamisen kaikille syötteen pienille kirjaimille. Toinen osa käskee muuttaa ne isoiksi kirjaimiksi lähdössä.
Tehdään nyt päinvastoin.
kissan esittely 1.txtkissan esittely 1.txt | tr [: ylempi:] [: alempi:]
On myös toinen tapa suorittaa sama tehtävä. Katsotaanpa se.
kissan esittely.txt | tr [a-z] [A-Z]
Sen sijaan, että käskimme "tr" kääntämään isoja kirjaimia pieniksi tai pieniä isoiksi, käskimme tunnistaa merkinnät, jotka vastaavat aluetta "a" - "z", ja kääntää ne vastaaviksi alueelta "A" - "Z".
Tätä vastaavaa menetelmää voidaan käyttää myös kääntämään isoja kirjaimia pieniksi.
kissan esittely 1.txt | tr [A-Z] [a-z]
Pelataan numeroilla
Näimme kuinka kääntää isot kirjaimet pieniksi, oikeassa? On aika leikkiä numeroilla.
Seuraavan komennon avulla voimme helposti kääntää kaikki numerot (0-9) vastaaviksi merkeiksi!
kissa demo_digit.txtkissa demo_digit.txt | tr [0-9] [a-z]
Mahtava! Entä isot kirjaimet?
kissa demo_digit.txt | tr [0-9] [A-Z]
Yksinkertainen, mutta mielenkiintoinen, oikea? Voimme myös muuntaa merkit numeroiksi!
kissa demo_pohjanlehti.txtkissa demo_matkalaukku.txt | tr [a-z] [0-9]
Uh, näyttää siltä, että asiat hajosivat, eikö? No, voimme käyttää vain a-a - j edustamaan yksinumeroisia numeroita. Jos tässä merkinnässä ei ole merkkiä, ”tr” korvaa merkin nimellä ”].
Poistetaan merkkejä
Kuten virallisessa kuvauksessa ehdotetaan, ”tr” voi tehdä muutakin kuin vain merkkien kääntämisen. Seuraavassa esimerkissä tarkistamme, kuinka tr-kirjainta käytetään tiettyjen merkkien poistamiseen.
kissa satunnainen.txt
Poistetaan nyt kaikki numerot sisällöstä.
kissa satunnainen.txt | tr -d [0-9]
Tässä "-d" -lippu on käske "tr" poistaa ja [0-9] merkitsevät poistettavat numerot.
Voimme tehdä sen myös hahmojen kanssa. Seuraava komento säilyttää kaikki numerot, mutta poistaa kaikki merkit.
kissa satunnainen.txt | tr -d [a-z]
Entä vain yhden yksittäisen merkin poistaminen tiedostosta?
kissa demo_matkalaukku.txtkissa demo_matkalaukku.txt | tr -d 'y'
Se poisti kaikki y-merkinnät tiedostosta.
Puristamalla toistuvia merkkejä
On aikoja, jolloin merkki toistetaan peräkkäin. Jos käsittelet tällaisia ärsyttäviä asioita, anna “tr”: n hoitaa se! Seuraavan komennon avulla voit puristaa tällaisia tapahtumia. Se pitää pohjimmiltaan merkin alkuperäisen esiintymisen ja poistaa muut.
Ensinnäkin on aika tarkistaa, miten demotiedosto näyttää.
kissan kaksoiskappale.txt
Siirrä nyt sisältö tr: lle.
kissan kaksoiskappale.txt | tr -s [: numeroa:]
Tässä "-s" -parametri on indikaattori "purista" -toiminnon suorittamiseksi.
Lausekkeiden rikkominen / yhdistäminen
Katsotaanpa demotiedosto.
lepakko kaksoiskappale.txt
Se sisältää lauseen, jossa välilyönnit jakavat sanat, oikea? Jaetaan sanat uusiksi riveiksi.
kissan kaksoiskappale.txt | tr "" "\ n"
Tämä komento korvasi kaikki välilyönnit uudella rivillä.
Yhdistetään rikkoutunut lause taas pitkäksi lauseeksi.
lepakko kaksoiskappale.txtkissan kaksoiskappale.txt | tr "\ n" ""
Käännetään merkkejä
Aivan kuten käännimme merkkejä aiemmin, tällä kertaa, teemme saman, mutta vain yhdellä hahmolla.
kissan esittely.txt
Vaihdetaan tässä tiedostossa kaikki uuden rivin merkit puolipisteiksi.
kissan esittely.txt | tr "\ n" ";"
Minun piti kääriä se "kaiun" ympärille. Muuten se loisi jonkin verran lähtöä, koska viimeinen uusi rivi-merkki myös käännetään puolipisteeksi.
Hahmojen vaihtamiseen on erilainen tapa. Tätä on kuitenkin vaikea hallita.
kissan kaksoiskappale 1.txtkissan kaksoiskappale 1.txt | tr -c 'd' 'z'
kissan kaksoiskappale 1.txt | tr -c 'd' 'z'
Vau! Kiedotaan se "kaikun" ympärille, jotta tuotos ymmärrettäisiin paremmin.
echo $ (kissan kaksoiskappale1.txt | tr -c 'd' 'z')
Mitä täällä tapahtui? Käyttämällä “-c” -merkkiä ”tr” pitää kohdemerkin ennallaan. Jos kohtaus ei täsmää, kaikki muut merkit muuttuvat. Tässä muu merkki kuin b korvattiin merkillä z.
Kielien kääntäminen
“Tr” voi toimia myös jousilla. Suoritetaan merkkijonon vaihto.
kissan kaksoiskappale 1.txtkissan kaksoiskappale 1.txt | tr "duplicate" "not_duplicate"
Korvattava merkkijononi on lyhyempi kuin korvattava merkkijono, joten se ei sopinut.
Merkistö
Tähän mennessä olet huomannut, että on olemassa useita merkistöjä, joita ”tr” tukee. Vaikka useita niistä käytettiin yllä olevissa esimerkeissä, muut merkkisarjat ovat myös varsin hyödyllisiä. Tässä on luettelo kaikista tuetuista merkkiluetteloista.
POSIX-merkistö
- [: numero:]: Numerot 0-9
- [: alfa:]: Aakkoset a-z ja A-Z.
- [: alnum:]: aakkosnumeeriset merkit
- [: punct:]: välimerkkisymbolit
- [: välilyönti:]: Mikä tahansa välilyönti, esimerkiksi välilyönti, välilehti, FF, CR, NL, FF jne.
- [: ylempi:]: Kaikki isot aakkoset
- [: pienempi:]: Kaikki pienet aakkoset
- [: cntrl:]: Kaikki ohjausmerkit (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL jne.)
Muita merkistöjä
- [A-Z]: Kaikki isot aakkoset
- [a-z]: Kaikki pienet aakkoset
- [0-9]: Kaikki numerot
Lopulliset ajatukset
On monia tapoja, joilla kaikki nämä tr: n ominaisuudet voivat hyödyttää käyttäjiä. Suosittelen aina tutustumaan kaikkiin käytettävissä oleviin vaihtoehtoihin ja perusteellisiin oppaisiin kaikilla Linux-työkaluilla heidän miehensä, info- ja ohjesivuillaan, koska ne voivat tarjota arvokkaampaa tietoa.
tr --apumies tr
info tr
Nauttia!