10 tr komandų pavyzdžiai sistemoje Linux


tr (sutrumpinimas iš translate) yra naudinga komandų eilutės priemonė, kuri verčia ir (arba) ištrina simbolius iš stdin įvesties ir rašo į stdout. Tai naudinga programa, skirta manipuliuoti tekstu komandinėje eilutėje.

Šiame straipsnyje bus paaiškinti keli naudingi tr komandos pavyzdžiai, skirti Linux naujokams.

Komandos tr paleidimo sintaksė yra tokia, kai SET1 simboliai verčiami į SET2 simbolius.

tr flags [SET1] [SET2]

Linux tr komandų pavyzdžiai

1. Paprastas tr komandos naudojimo atvejis yra pakeisti visas mažąsias teksto raides į didžiąsias ir atvirkščiai, kaip parodyta toliau.

$ cat linux.txt

linux is my life
linux has changed my life
linux is best and everthing to me..:)
$ cat linux.txt | tr [:lower:] [:upper:]

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

2. Arba galite naudoti šią komandą, norėdami pakeisti visas mažąsias raides į didžiąsias faile, kaip parodyta.

$ cat linux.txt | tr [a-z] [A-Z]

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

3. Norėdami išsaugoti rezultatus, įrašytus į stdout faile, kad būtų galima vėliau apdoroti, naudokite apvalkalo išvesties peradresavimo funkciją (>), kaip parodyta.

$ cat linux.txt | tr [a-z] [A-Z] >output.txt
$ cat output.txt 

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

4. Kalbant apie peradresavimą, galite siųsti įvestį į tr naudodami įvesties peradresavimą ir peradresuoti išvestį į failą naudodami tą pačią komandą, kaip parodyta.

$ tr [a-z] [A-Z] < linux.txt >output.txt

5. Kita naudinga funkcija yra ta, kad galite naudoti žymą -d norėdami ištrinti simbolius, pavyzdžiui, norėdami pašalinti tarpus domenų pavadinimuose naudodami šią komandą.

$ cat domains.txt

www. tecmint. com
www. fossmint. com
www. linuxsay. com
$ cat domains.txt | tr -d '' 

linux-console.net
www.fossmint.com
www.linuxsay.com

6. Jei apdorojamame tekste seka kartojasi simboliai (pvz., dvigubi tarpai), galite naudoti parinktį -s, kad išspaustumėte simbolius, palikdami tik vienas jo atvejis.

$ cat domains.txt

www.tecmint.....com
www.fossmint.com
www.linuxsay.com
$ cat domains.txt | tr -s '' 

linux-console.net
www.fossmint.com
www.linuxsay.com

7. Parinktis -c nurodo tr naudoti papildinį SET. Šiame pavyzdyje norime ištrinti visas raides ir palikti tik UID.

$ echo "My UID is $UID" | tr -cd "[:digit:]\n"
OR
$ echo "My UID is $UID" | tr -d "a-zA-Z"

8. Štai pavyzdys, kaip viena žodžių eilutė (sakinys) suskaidoma į kelias eilutes, kur kiekvienas žodis rodomas atskirai.

$ echo "My UID is $UID"

My UID is 1000

$ echo "My UID is $UID" | tr " "  "\n"

My 
UID 
is 
1000

9. Susiję su ankstesniu pavyzdžiu, taip pat galite išversti kelias žodžių eilutes į vieną sakinį, kaip parodyta.

$ cat uid.txt

My 
UID 
is 
1000

$ tr "\n" " " < uid.txt

My UID is 1000

10. Taip pat galima išversti tik vieną simbolį, pavyzdžiui, tarpą į “ : ” simbolį, kaip nurodyta toliau.

$ echo "linux-console.net =>Linux-HowTos,Guides,Tutorials" | tr " " ":"

linux-console.net:=>Linux-HowTos,Guides,Tutorials

Yra keletas sekos simbolių, kuriuos galite naudoti su tr. Norėdami gauti daugiau informacijos, žr. tr man puslapį.

man tr

Tai viskas! tr yra naudinga komanda, skirta valdyti tekstą komandų eilutėje. Šiame vadove parodėme keletą naudingų tr komandos naudojimo pavyzdžių, skirtų Linux naujokams. Galite pasidalinti savo mintimis su mumis naudodami toliau pateiktą komentarų formą.