A hivatalos leírás alapján könnyen megérthető az eszköz értéke. A Linux beépített eszközök nagy gyűjteményével áll elő. Van néhány speciális, amely rendkívül hasznos a szöveg manipulálásához. Számos ilyenről már volt szó, például a Vim, a Nano, az awk, a sed és más eszközökről.
Azok, akik rendszeresen dolgoznak szövegekkel, a „tr” mindenképpen nagyon-nagyon hasznos lesz. Ez a cikk elegendő példákkal illusztrálja a „tr” leggyakoribb használatát.
Megjegyzés: Az oktatóanyag rengeteg véletlenszerű tartalmú dummy fájlt fog használni. Az összes véletlenszerű karakterláncot az generálja Véletlen.org.
Elhelyezkedés
amely tr
Ez a „tr” parancseszköz teljes elérési útja.
Alapvető használat
A „tr” eszköz használatához a következő parancsszerkezetet kell használnia.
trKülönböző lehetőségek és módok vannak a szövegek manipulálására a „tr” használatával. Eleinte nézzük meg ezt a bemutató fájlt.
macska bemutató.txt
Az összes karakter kisbetűvel van, jobbra? Átalakítsuk őket nagybetűvé!
macska bemutató.txt | tr [: alsó:] [: felső:]
Itt a „tr” első paramétere azt jelzi, hogy fordítást kell végrehajtani a bemenet összes kisbetűjével. A második rész azt mondja, hogy a kimeneten alakítsuk nagybetűvé.
Most tegyük az ellenkezőjét.
macska bemutató1.txtmacska bemutató1.txt | tr [: felső:] [: alsó:]
Van egy másik módja is ugyanannak a feladatnak a végrehajtására. Nézzük meg.
macska bemutató.txt | tr [a-z] [A-Z]
Ahelyett, hogy azt mondtuk volna a „tr” -nek, hogy fordítsa a nagybetűket kisbetűvé, vagy a kisbetűket nagybetűvé, azt mondtuk, hogy azonosítsuk az „a” – „z” tartománynak megfelelő bejegyzéseket, és fordítsuk le az „A” – „Z” tartomány megfelelőire.
Ezzel a hasonló módszerrel nagybetűket is kisbetűvé lehet fordítani.
macska bemutató1.txt | tr [A-Z] [a-z]
Játék számokkal
Láttuk, hogyan kell nagybetűket fordítani kisbetűkre, jobbra? Itt az ideje számjegyekkel játszani.
A következő paranccsal könnyen lefordíthatjuk az összes számjegyet (0–9) megfelelő karaktereikre!
macska demo_digit.txtmacska demo_digit.txt | tr [0-9] [a-z]
Fantasztikus! Mit szólnál a nagybetűkhöz?
macska demo_digit.txt | tr [0-9] [A-Z]
Egyszerű, mégis érdekes, igaz? Átalakíthatjuk a karaktereket számjegyekké is!
macska demo_lowercase.txtmacska demo_lowercase.txt | tr [a-z] [0-9]
Uh, úgy tűnik, a dolgok megszakadtak, ugye? Nos, csak az „a” - „j” karaktereket használhatjuk egyjegyűek ábrázolására. Ha van olyan karakter, amely nem tartozik ebbe a kötésbe, a „tr” helyettesíti a karaktert ']' karakterrel.
Karakterek törlése
Ahogy a hivatalos leírás is sugallja, a „tr” nem csupán karakterek fordítására képes. A következő példában megnézzük, hogyan használhatjuk a „tr” -t bizonyos karakterek törléséhez.
macska véletlenszerű.txt
Most töröljük az összes számot a tartalomból.
macska véletlenszerű.txt | tr -d [0-9]
Itt a „-d” jelző azt mondja, hogy a „tr” -t törölje, és a [0–9] jelöli a törlendő számjegyeket.
A karakterekkel is megtehetjük. A következő parancs megtartja az összes számot, de eltávolítja az összes karaktert.
macska véletlenszerű.txt | tr -d [a-z]
Mit szólnál ahhoz, ha csak egyetlen karaktert távolítasz el a fájlból?
macska demo_lowercase.txtmacska demo_lowercase.txt | tr -d 'y'
Törölte az összes „y” bejegyzést a fájlból.
Ismételt karakterek szorítása
Van, amikor egy karaktert egymás után ismételnek. Ha ilyen bosszantó kérdésekkel foglalkozik, hagyja, hogy a „tr” gondozza! A következő paranccsal kipréselheti az ilyen eseményeket. Lényegében megtartja a karakter kezdeti előfordulását, és törli a további karaktereket.
Először is ideje ellenőrizni, hogy néz ki a demo fájl.
macskamásolat.txt
Most adja át a tartalmat a „tr” címre.
macskamásolat.txt | tr -s [: számjegyek:]
Itt az „-s” paraméter jelzi a „szorítás” művelet végrehajtását.
Mondatok törése / összevonása
Nézzük meg a bemutató fájlt.
denevér másolat.txt
Tartalmaz egy mondatot, szóközökkel osztva a szavakat, ugye? Osszuk szét a szavakat új sorokra.
macskamásolat.txt | tr "" "\ n"
Ez a parancs az összes szóköz karaktert új sor karakterekre cserélte.
Olvassuk össze ismét a bontott mondatot hosszú mondattá.
denevér másolat.txtmacskamásolat.txt | tr "\ n" ""
Karakterek fordítása
Csakúgy, mint korábban karaktereket fordítottunk, ezúttal is ezt fogjuk tenni, de csak egyetlen karakterrel.
macska bemutató.txt
Ebben a fájlban változtassunk pontosvesszővé minden új sort.
macska bemutató.txt | tr "\ n" ";"
„Visszhangra” kellett tekernem. Ellenkező esetben némi kimenetet hozna létre, mert az utolsó új sor karaktert pontosvesszővé is lefordítanák.
A karakterváltásnak más módja van. Ezt azonban nehezebb ellenőrizni.
macska másolat1.txtmacska másolat1.txt | tr -c 'd' 'z'
macska másolat1.txt | tr -c 'd' 'z'
Azta! Tekerjük az „echo” köré, hogy jobban megértsük a kimenetet.
echo $ (macska duplikátum1.txt | tr -c 'd' 'z')
Mi történt itt? A „-c” jelző használatával a „tr” csak a cél karaktert változtatja meg. Eltérés esetén minden más karakter átalakul. Itt a „b” kivételével bármely karaktert „z” váltotta fel.
Húrok fordítása
A „tr” karakterláncokkal is működhet. Végezzük el a húrcserét.
macska másolat1.txtmacska másolat1.txt | tr "duplicate" "not_duplicate"
A cserélendő karakterláncom rövidebb, mint a cserélendő karakterlánc, ezért nem illett be.
Karakterkészletek
Mostanra észrevette, hogy számos karakterkészletet támogat a „tr”. Míg a fenti példákban számosat használtak, más karakterkészletek is nagyon hasznosak. Itt található az összes támogatott karakterlista.
POSIX karakterkészletek
- [: számjegy:]: 0–9. számjegy
- [: alfa:]: a-z és A-Z ábécé.
- [: alnum:]: Alfanumerikus karakterek
- [: punct:]: Írásjelek
- [: szóköz:]: Bármely szóköz karakter, például szóköz, tabulátor, FF, CR, NL, FF stb.
- [: felső:]: Minden nagybetű
- [: alsó:]: Minden kisbetű
- [: cntrl:]: Minden vezérlő karakter (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL stb.)
További karakterkészletek
- [A-Z]: Minden nagybetű
- [a-z]: Minden kisbetű
- [0-9]: Minden számjegy
Végső gondolatok
Rengeteg módja van annak, hogy a „tr” ezen jellemzői a felhasználók javát szolgálják. Mindig azt javaslom, hogy nézze meg az összes rendelkezésre álló opciót és részletes útmutatást bármely Linux-eszközről az emberüktől, az információs és a súgóoldalaktól, mivel ezek értékesebb tudást kínálnak.
tr --helpférfi tr
info tr
Élvezd!