Linux naredbe

Linux tr naredba

Linux tr naredba
U Linuxu je "tr" ugrađeni alat koji može "prevesti, iscijediti i / ili izbrisati znakove sa standardnog unosa, zapisujući na standardni izlaz" (s man stranice).

Iz službenog opisa lako je shvatiti vrijednost ovog alata. Linux dolazi s velikom kolekcijom ugrađenih alata. Postoje neke posebne koje su izuzetno korisne za manipulaciju tekstom. Već smo obradili brojne od njih, poput Vim, Nano, awk, sed i drugih alata.

Onima koji redovito rade s tekstovima, "tr" će zasigurno biti jako, jako korisno. Ovaj će članak ilustrirati najčešće korištenje "tr" s dovoljno primjera.

Napomena: Vodič će upotrijebiti tonu lažnih datoteka sa slučajnim sadržajem. Sve slučajne nizove generira Slučajno.org.

Mjesto

koji tr

Ovo je puni put naredbenog alata "tr".

Osnovna upotreba

Za upotrebu alata "tr" morate koristiti sljedeću strukturu naredbi.

tr [SET1] [SET2]

Postoje različite mogućnosti i načini manipulacije tekstovima pomoću "tr". Isprva provjerimo ovu demo datoteku.

demo mačka.txt

Svi su znakovi malim slovima, zar ne? Pretvorimo ih u velika slova!

mačka demo.txt | tr [: donji:] [: gornji:]

Ovdje prvi parametar "tr" označava izvođenje prijevoda na svim malim slovima unosa. Drugi dio govori o tome da se na izlazu transformiraju u velika slova.

Sad, učinimo suprotno.

mačka demo1.txt

mačka demo1.txt | tr [: gornji:] [: donji:]

Postoji i drugi način izvođenja istog zadatka. Provjerimo.

mačka demo.txt | tr [a-z] [A-Z]

Sada, umjesto da kažemo „tr“ da prevede velika u mala ili mala u velika slova, rekli smo da identificiramo unose koji odgovaraju rasponu od „a“ do „z“ i prevedemo u njihov ekvivalent iz raspona „A“ u „Z“.

Ova slična metoda također se može koristiti za prevođenje velikog u malo slovo.

mačka demo1.txt | tr [A-Z] [a-z]

Poigravanje brojevima

Vidjeli smo kako prevesti veliko slovo u malo, desno? Vrijeme je da se poigrate sa znamenkama.

Pomoću sljedeće naredbe možemo lako prevesti sve znamenke (0-9) u njihove ekvivalentne znakove!

mačka demo_digit.txt

mačka demo_digit.txt | tr [0-9] [a-z]

Super! Što kažete na velika slova?

mačka demo_digit.txt | tr [0-9] [A-Z]

Jednostavno, a opet zanimljivo, zar ne? Znakove također možemo transformirati u znamenke!

mačka demo_donji slučaj.txt

mačka demo_donji slučaj.txt | tr [a-z] [0-9]

Uh, čini se kao da su se stvari pokvarile, zar ne? Pa, od 'a' do 'j' možemo koristiti samo za predstavljanje jednoznamenkastih brojeva. Ako postoji bilo koji znak koji je izvan ove granice, "tr" će zamijeniti znak s ']'.

Brisanje znakova

Kao što službeni opis sugerira, "tr" može učiniti više od samog prevođenja znakova. U sljedećem ćemo primjeru provjeriti kako pomoću "tr" izbrisati određene znakove.

mačka slučajna.txt

Izbrišimo sad sve brojeve iz sadržaja.

mačka slučajna.txt | tr -d [0-9]

Ovdje je zastavica "-d" reći "tr" za brisanje i [0-9] označavajući znamenke za brisanje.

To možemo i s likovima. Sljedeća naredba zadržat će sve brojeve, ali uklonit će sve znakove.

mačka slučajna.txt | tr -d [a-z]

Kako bi bilo da iz datoteke uklonite samo jedan određeni znak?

mačka demo_donji slučaj.txt

mačka demo_donji slučaj.txt | tr -d 'y'

Iz datoteke je izbrisao sve unose 'y'.

Stiskanje ponovljenih likova

Postoje slučajevi kada se znak ponavlja uzastopno. Ako imate posla s takvim dosadnim problemima, samo prepustite "tr" da se pobrine za to! Pomoću sljedeće naredbe možete stisnuti takve pojave. U osnovi zadržava početnu pojavu lika i briše dodatne.

Prvo je vrijeme da provjerite kako izgleda demo datoteka.

mačka duplikat.txt

Sad proslijedite sadržaj na "tr".

mačka duplikat.txt | tr -s [: znamenke:]

Ovdje je parametar „-s“ pokazatelj izvođenja akcije „stiskanja“.

Razbijanje / spajanje rečenica

Provjerimo demo datoteku.

duplikat šišmiša.txt

Sadrži rečenicu s razmacima koji dijele riječi, zar ne? Podijelimo riječi u nove retke.

mačka duplikat.txt | tr "" "\ n"

Ova je naredba zamijenila sve razmaknice znakovima novog reda.

Spojimo ponovno izlomljenu rečenicu u dugačku.

duplikat šišmiša.txt

mačka duplikat.txt | tr "\ n" ""

Prevođenje znakova

Kao što smo i prije prevodili znakove, i ovaj ćemo put učiniti isto, ali samo s jednim znakom.

mačka demo.txt

U ovoj datoteci promijenimo sve znakove novog retka u zarez.

mačka demo.txt | tr "\ n" ";"

Morao sam ga omotati oko "odjeka". U suprotnom, stvorilo bi nešto rezultata, jer bi se i posljednji znak novog retka preveo u zarez.

Postoji drugačiji način mijenjanja likova. Međutim, ovu je teže kontrolirati.

mačka duplikat1.txt

mačka duplikat1.txt | tr -c 'd' 'z'

mačka duplikat1.txt | tr -c 'd' 'z'

Vau! Omotajmo ga oko "odjeka" kako bismo bolje razumjeli izlaz.

echo $ (mačka duplikat1.txt | tr -c "d" "z")

Što se ovdje dogodilo? Koristeći zastavicu "-c", "tr" će zadržati samo ciljni znak nepromijenjenim. U slučaju neusklađenosti, svaki će se drugi lik transformirati. Ovdje je bilo koji znak osim "b" zamijenjen s "z".

Prevođenje žica

"Tr" također može raditi sa žicama. Izvršimo zamjenu niza.

mačka duplikat1.txt

mačka duplikat1.txt | tr "duplikat" "ne_dvostručiti"

Moj niz koji treba zamijeniti kraći je od niza kojim se zamjenjuje, pa nije odgovarao.

Skupovi znakova

Do sada ste primijetili da postoji niz skupova znakova koje podržava "tr". Iako su neki od njih korišteni u gornjim primjerima, drugi skupovi znakova također su vrlo korisni. Evo popisa svih podržanih popisa znakova.

POSIX skupovi znakova

  • [: znamenka:]: Znamenke 0-9
  • [: alfa:]: Abecede a-z i A-Z.
  • [: alnum:]: Alfa-numerički znakovi
  • [: punct:]: Interpunkcijski simboli
  • [: razmak:]: Bilo koji razmak, npr. razmak, kartica, FF, CR, NL, FF itd.
  • [: gornja:]: Sve velike abecede
  • [: donji:]: Sve male abecede
  • [: cntrl:]: Svi kontrolni znakovi (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL itd.).)

Dodatni skupovi znakova

  • [A-Z]: Sve velike abecede
  • [a-z]: Sve male abecede
  • [0-9]: Sve znamenke

Završne misli

Postoji mnoštvo načina na koje sve ove značajke "tr" mogu koristiti korisnicima. Uvijek preporučam da provjerite sve dostupne opcije i dubinske vodiče o bilo kojem Linux alatu sa njihovih stranica s informacijama i informacijama i pomoći jer mogu ponuditi dragocjenije znanje.

tr --pomoć

čovjek tr

info tr

Uživati!

5 najboljih arkadnih igara za Linux
U današnje vrijeme računala su ozbiljni strojevi koji se koriste za igre na sreću. Ako ne uspijete dobiti novi visoki rezultat, znat ćete na što misli...
Bitka za Wesnoth 1.13.6 Razvoj objavljen
Bitka za Wesnoth 1.13.6 objavljeno prošlog mjeseca, šesto je razvojno izdanje u izdanju 1.13.x series i donosi niz poboljšanja, ponajviše korisničkog ...
Kako instalirati League Of Legends na Ubuntu 14.04
Ako ste ljubitelj League of Legends, ovo je prilika za vas da testirate League of Legends. Imajte na umu da je LOL podržan na PlayOnLinux ako ste kori...