Ametliku kirjelduse põhjal on selle tööriista väärtusest lihtne aru saada. Linux pakub välja suure hulga sisseehitatud tööriistu. On mõned spetsiaalsed, mis on teksti manipuleerimiseks ülikasulikud. Oleme juba kajastanud paljusid neist, näiteks Vim, Nano, awk, sed ja muid tööriistu.
Need, kes töötavad tekstidega regulaarselt, on tr-st kindlasti väga-väga kasulik. Selles artiklis illustreeritakse piisavate näidetega tr-i kõige tavalisemat kasutamist.
Märkus. Juhendaja kasutab tonni juhusliku sisuga näivfaile. Kõik juhuslikud stringid genereeritakse Juhuslik.org.
Asukoht
mis tr
See on käsutööriista „tr” täielik tee.
Põhikasutus
Tööriista “tr” kasutamiseks peate kasutama järgmist käsustruktuuri.
trTekstide manipuleerimiseks tr abil on erinevaid võimalusi ja viise. Esmalt kontrollime seda demofaili.
kassi demo.txt
Kõik märgid on väiketähtedega, eks? Muutkem need suurtähtedeks!
kassi demo.txt | tr [: alumine:] [: ülemine:]
Siin näitab “tr” esimene parameeter tõlke sooritamist sisendi kõigi väiketähtedega. Teine osa ütleb, kuidas need väljundis suurtähtedeks muuta.
Teeme nüüd vastupidi.
kassi demo1.txtkassi demo1.txt | tr [: ülemine:] [: alumine:]
Selle ülesande täitmiseks on ka teine viis. Vaatame üle.
kassi demo.txt | tr [a-z] [A-Z]
Selle asemel, et käskida tr-l tõlkida suurtähed väiketähtedeks või väiketähtedest suurtähtedeks, käskisime tuvastada vahemikku „a” kuni „z” vastavad kirjed ja tõlkida nende ekvivalendiks vahemikust „A” kuni „Z”.
Seda sarnast meetodit saab kasutada ka väiketähtede tõlkimiseks.
kassi demo1.txt | tr [A-Z] [a-z]
Numbritega mängimine
Nägime, kuidas tõlkida suurtähed väikesteks, eks? On aeg mängida numbritega.
Järgmise käsu abil saame hõlpsalt tõlkida kõik numbrid (0–9) vastavateks märkideks!
kass demo_digit.txtkass demo_digit.txt | tr [0-9] [a-z]
Vinge! Kuidas oleks suurtähtedega?
kass demo_digit.txt | tr [0-9] [A-Z]
Lihtne, samas huvitav, eks? Samuti võime tähemärgid teisendada numbriteks!
kassi demo_madalik.txtkassi demo_madalik.txt | tr [a-z] [0-9]
Oh, tundub, et asjad läksid katki, eks? Noh, me saame kasutada tähti „a” kuni „j” ainult ühekohaliste numbrite tähistamiseks. Kui sellest tähemärgist on mõni märk väljas, asendab “tr” tähemärgi ']'.
Märkide kustutamine
Nagu ametlik kirjeldus ütleb, saab tr abil teha midagi enamat kui lihtsalt märkide tõlkimine. Järgmises näites uurime, kuidas kasutada märki "tr" teatud märkide kustutamiseks.
kass juhuslik.txt
Kustutame nüüd kõik numbrid sisust.
kass juhuslik.txt | tr -d [0–9]
Siinkohal on lipul “-d” käsk tr “kustutada” ja [0–9] tähistavad kustutatavad numbrid.
Saame seda teha ka tegelastega. Järgmine käsk säilitab kõik numbrid, kuid eemaldab kõik märgid.
kass juhuslik.txt | tr -d [a-z]
Kuidas oleks failist eemaldada ainult üks konkreetne märk?
kassi demo_madalik.txtkassi demo_madalik.txt | tr -d 'y'
See kustutas failist kõik y-kirjed.
Korduvate märkide pigistamine
On aegu, kui märki korratakse järjestikku. Kui tegelete selliste tüütute probleemidega, laske lihtsalt tr-l selle eest hoolitseda! Järgmise käsu abil saate selliseid juhtumeid pigistada. See hoiab sisuliselt märgi algset esinemist ja kustutab täiendavad.
Esiteks on aeg kontrollida, kuidas demofail välja näeb.
kassi duplikaat.txt
Nüüd edastage sisu tr-le.
kassi duplikaat.txt | tr -s [: numbrit:]
Siin on parameeter “-s” indikaator “pigistamise” toimingu sooritamiseks.
Lausete purustamine / ühendamine
Tutvume demofailiga.
nahkhiire duplikaat.txt
See sisaldab lauset tühikutega, mis jagavad sõnu, eks? Jagame sõnad uuteks ridadeks.
kassi duplikaat.txt | tr "" "\ n"
See käsk asendas kõik tühikud uue rea märkidega.
Ühendame purustatud lause jälle pikaks lauseks.
nahkhiire duplikaat.txtkassi duplikaat.txt | tr "\ n" ""
Tähemärkide tõlkimine
Nii nagu me tõlkisime tähemärke varem, teeme ka seekord sama, kuid ainult ühe tähemärgiga.
kassi demo.txt
Muutkem selles failis kõik uue rea tähemärgid semikooloniks.
kassi demo.txt | tr "\ n" ";"
Ma pidin selle kaja ümber keerama. Vastasel juhul tekitaks see teatud väljundi, sest viimane uue rea märk tõlgitakse ka semikooloniks.
Tegelaste vahetamiseks on erinev viis. Seda on aga raskem kontrollida.
kassi duplikaat1.txtkassi duplikaat1.txt | tr -c 'd' 'z'
kassi duplikaat1.txt | tr -c 'd' 'z'
Vau! Pange see ümber kaja, et väljundit paremini mõista.
echo $ (kassi duplikaat1.txt | tr -c 'd' z ')
Mis siin juhtus? „-C” lipu kasutamisel hoiab „tr” sihtmärgi muutumatuna. Mittevastavuse korral muudetakse kõik teised tegelased. Siin asendati kõik tähed peale „b” tähega „z”.
Stringide tõlkimine
“Tr” võib töötada ka stringidega. Teeme stringide asendamise.
kassi duplikaat1.txtkassi duplikaat1.txt | tr "duplicate" "not_duplicate"
Minu asendatav string on lühem kui asendatav string, nii et see ei sobinud.
Tähemärgid
Nüüdseks olete märganud, et „tr” toetab mitmeid tähemärke. Kuigi ülaltoodud näidetes kasutati paljusid neist, on ka muudest märkide komplektidest üsna palju abi. Siin on kõigi toetatud tähemärkide loend.
POSIXi märgistikud
- [: number:]: numbrid 0–9
- [: alfa:]: tähestikud a-z ja A-Z.
- [: alnum:]: tähtnumbrilised tähemärgid
- [: punkt:]: kirjavahemärgid
- [: tühik:]: kõik tühimärgid, näiteks tühik, vaheleht, FF, CR, NL, FF jne.
- [: ülemine:]: kõik suurtähed
- [: alumine:]: kõik väiketähed
- [: cntrl:]: kõik juhtmärgid (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL jne.)
Täiendavad märgistikud
- [A-Z]: kõik suurtähed
- [a-z]: kõik väiketähed
- [0-9]: kõik numbrid
Lõpumõtted
On palju võimalusi, kuidas kõik need tr-funktsioonid saavad kasutajatele kasu tuua. Soovitan alati tutvuda kõigi saadaolevate võimaluste ja põhjalike juhenditega kõigis Linuxi tööriistades nende mehelt, info- ja abilehtedelt, kuna need võivad pakkuda väärtuslikumaid teadmisi.
tr --abimees tr
info tr
Nautige!