Linux naredbe

Bash Tac naredba

Bash Tac naredba
Tac je jedna od onih naredbi koje ne shvaćate dok to već niste učinili, ponovno izmislili kotač, što nije rijetkost u praksi programiranja bez obzira učite li užad ili ste profesionalac s dugogodišnjim iskustvom hvalite se, sjajni ste. Ako su vam ruke čiste, onda dobro za vas; U svakom slučaju, očekuje vas poslastica, iskrcat ću sve što znam o naredbi tac i još mnogo toga. Nastavi čitati.

Poznat i kao obrnuta mačka, tac jednostavan uslužni program naredbenog retka koji vam omogućuje preokretanje linija u izlazu pomoću | ugrađeni rukovatelj cijevi i tak. Odnosno, ako imate naredbu s lijeve strane (lhs) i želite preokrenuti sadržaj njezinog izlaza, sve što biste napravili je upisati lhs | tac. To je to!

Doduše, taktiranje je više nego što se čini na prvi pogled. Ne brinite. Sve ćemo pokriti, u svoje vrijeme.

Savjeti o taktu

Koristiti ili ne koristiti, to je pitanje. Nećete, ne želite hvatati kad ne morate. Međutim, ako želite širiti takse kao zapovijed kruha i maslaca, to ovisi o vama. U međuvremenu, evo mog savjeta o prihvaćanju obje strane da ostanu neutralne.

Kada koristiti tac

Postoje trenuci kada koristite tac koji vam pomaže da izvučete više iz naredbenog retka s manje koda i vremena provedenog u istraživanju lhs naredbenih opcija.

Kada niste sigurni u mogućnosti lhs-a

Mnoge naredbe poput sort dolaze s opcijom za preokret izlaza naredbe. Međutim, ako niste sigurni ima li naredba s lijeve strane -r opciju za preokretanje izlaza, upotreba taca siguran je način za preokretanje izlaznih linija.

Kad izvedba nije bitna

Iako beznačajne, većina naredbi korištenih zajedno s ugrađenom opcijom za preokretanje izlaza ima bolje rezultate od slanja izlaza u tac. Dakle, ako malo zaostajanje u izvedbi nije problem, ubacivanje u tac za ponovnu reprodukciju u obrnutom redu je u redu.

Kada ne koristiti tac

Postoje slučajevi kada možda nećete koristiti tac jer znate bolje. Evo nekoliko napomena.

Kada znate da naredba na lhs ima mogućnost preokretanja izlaznih linija

Kao što sam rekao, „Većina naredbi dolazi s opcijom obrnutog izlaza.”Ako znate da određena lhs naredba ima opciju, ne možete koristiti tac. Napokon, -r je kraći od - | tac.

Kad je izvedba bitna

Kao što sam rekao, „Korištenje opcije obrnutog lhs može biti bolje od takta.”Ako želite istisnuti nekoliko sekundi u bash skripti ili imate posla s većim datotekama kojima je potrebno vrijeme za čitanje, možda nećete koristiti tac.

Tac pomoć

Pokretanje naredbe pomoći za tac ili man tac prikazuje upotrebu zajedno s opcijama koje se mogu koristiti. Evo što možete očekivati.

Naredbe

tak - pomoć

Izlaz

Tac verzija

Koja sam verzija?
Vi ste najnovija verzija sebe. Međutim, u slučaju koje je verzije vaš tac, postoji opcija za to.

Naredbe

tac --verzija

Izlaz

Bilješke

Ako koristite tac na FreeBSD ili macOS, duga opcija za verziju možda neće biti dostupna. U tom slučaju pokušajte s -v ili man tac. Ako ste probali, javite mi. ja sam znatiželjan. Hvala

Tac opcije

Pored pomoći i verzije, tac nema mnogo opcija. Sigurno ćete otkriti da tac nije bilo koja stara obrnuta mačka.

Tac prije opcije

Opcija -b omogućuje vam promjenu načina pričvršćivanja separatora u izlazu. Prema zadanim postavkama, razdvajač novog retka pridružen je nakon svakog retka.

Znam da je zbunjujuće. Razložimo to na primjeru.

Prvo, pogledajmo kako izgleda naš izlaz prije korištenja tac -b.

Naredbe

dalje 10

Izlaz

Sada da vidimo u što se pretvara naš izlaz nakon upotrebe tac bez -b.

Naredbe

slijed 10 | tac

Izlaz

Sada da vidimo u što se pretvara izlaz pomoću tac -b.

Naredbe

slijed 10 | tac -b

Izlaz

Tac separator opcija

Opcija razdvajanja -s 'doslovni niz' omogućuje vam određivanje znaka ili niza znakova koje tac koristi za razdvajanje linija. Prema zadanim postavkama koristi se znak novog retka ('0a' u hex-u).

Kako se koristi opcija razdvajanja taca, isprva nije očito. Međutim, kad jednom znate da je tu, teško je ne pokušati ga koristiti.

Razmotrimo sljedeći primjer, operirajući na linijama predstavljenim u hex-u.

Naredbe

dalje 20 | xxd -ps | tac -s '0a' | xxd -ps -r

Izlaz

Bilješke

(1) Moglo bi izgledati trivijalno kao kada se koristi seq. 20 | tac naredbu, međutim, u tom slučaju nismo trošili vrijeme radeći na izlaznom toku u hex-u. Korištenje ovog uzorka korisno je kada odvojeno nije nešto trivijalno kao znak nove crte, kao što je nulti bajt.

Sada manje pokušavajte koristiti tac za nešto malo manje sirovo i više meta poput jednostavnog HTML-a.

Razmotrite sljedeću datoteku.

Datoteka

A
B
C

Naredbe

datoteka () echo -e "A
B
C
";
datoteka | taktovi "
"

Izlaz

Uspjeli smo pretvoriti HTML stranicu

A
B
C

u

C
B
A

koristeći tac.

Pretpostavimo da trebate napraviti nešto malo složenije, poput tretiranja bilo koje oznake kao separatora taca. U tom slučaju, nećete se izvući samo korištenjem samo separatora. Tu dolazi opcija regularnog izraza. U kombinaciji s opcijom razdvajača omogućuje vam da naredbom tac učinite više nego da obrnete liniju u datoteci. Evo kako.

Tac regex opcija

Opcija regularnog izraza -r -s 'regex' omogućuje vam da odredite da se niz razdvajača tretira kao regularni izraz.

Kako koristiti opciju tac regularnog izraza jednostavno je poput dodavanja opcije -r prije ili poslije separatora.

Razmotrite prethodni primjer koristeći opciju regularnog izraza zajedno s opcijom razdvajanja. Neka se tac prema bilo kojoj označnoj oznaci odnosi kao prema razdvajaču.

Datoteka



jednostavne funkcije


Funkcije su jednostavne u bashu. Barem ovaj jest. Stavlja niz na ekran.


Naredbe


jednostavna funkcija
()
jeka
što jednostavnije postaje jednostavna funkcija

Izvor: https: // temptemp3.github.io / bash-funkcije

Naredbe

datoteka ()

jeka '



jednostavne funkcije

Funkcije su jednostavne u bashu. Barem ovaj jest. To stavlja a
niz na ekranu.

Naredbe



jednostavna funkcija

(
)

jeka što jednostavnije postaje

jednostavna funkcija
'

datoteka | tac -r -s "] *."

Izlaz

Uspjeli smo pretvoriti HTML stranicu obrnutom datotekom pomoću HTML oznaka. Ako pogledate detalje, primijetit ćete da to još nije savršeno.

Tac naredba u čistom bashu

Evo primitivne verzije tac implementacije u pure bash koja preokreće linije unesene naredbom lhs. Buduće verzije ostavljene su kao vježba.

#!/ bin / bash
## tak
## verzija 0.0.1 - početni
####################################################
tac ()
lokalno -a dol
mjesni -i i
mapfile dol -
i = "$ # arr [@]"
dok [$ i -ge 0]
čini
odjek $ arr [i]
neka je i- = 1
gotovo

####################################################
tac
####################################################

Izvor: https: // github.com / temptemp3 / ba.sh / blob / master / tac.sh

Tac naredba pomoću drugih naredbi

Evo nekoliko primitivnih verzija implementacije takta korištenjem drugih naredbi koje preokreću linije unesene naredbom lhs. Buduće verzije ostavljene su kao vježba.

Prije nego što započnemo, zatvorite oči i razmislite: „Što bi se moglo koristiti za primjenu primitivne verzije taksa?"
Mnoge zapovijedi mi padnu na pamet, ali usredotočit ću se na one za koje imamo mjesta.

budala

Slično naredbi Tac u primjeru čistog basha, da bismo implementirali tac, prvo bismo spremili retke čitanja da bi se reproducirali obrnuto nakon što se pročitaju sve linije. Evo kako bi to izgledalo pomoću gawka.

 gawk 'linija [++ linija [0]] = $ (0) END za (i = 0; i

Sada pokušajte upotrijebiti naredbu lhs seq 10.

 slijed 10 | gawk 'linija [++ linija [0]] = $ (0) END za (i = 0; i

Kao što biste očekivali, izlaz je

Vježbe

1. Funkcija lhs () seq 10; navodi cjelobrojne brojeve od 1 do 10. Napišite rhs naredbu takvu da je lhs | rhs je jednako 10864213579 samo koristeći tac (Savjet: pogledajte Tac prije primjera opcije)
2. Obrnuti izlaz rhs () pronađi-dubinu 1 -maxdepth 1 -print0; pomoću tac (Savjet: pogledajte primjer opcije razdvajača Tac)
3. Produžite tac.sh (u naredbi Tac u čistom bashu) da se ponaša točno kao tac. Morat ćete dodati opcije i provjeriti njihovo ponašanje.
4. Primijenite primitivnu verziju tac u pure bash kao rekurzivnu funkciju.

TL; DR

Opet sam uživao u pisanju naredbe Bash tac. Nakon čitanja nadam se da se možete složiti da se takta može više nego što ste mislili. Također, nakon pokušaja da stvari napravim na teži način pri dnu, nadam se da znate koliko bi tac naredba mogla biti korisna. Ako netko uspije odraditi bilo koju od vježbi ili zatreba pomoć oko domaće zadaće, javite mi. Hvala,

Zamijenite svoje tipke miša različito za različiti softver pomoću X-Mouse Button Control
Možda vam treba alat koji bi mogao promijeniti kontrolu miša sa svakom aplikacijom koju koristite. Ako je to slučaj, možete isprobati aplikaciju pod n...
Microsoft Sculpt Touch bežični miš pregled
Nedavno sam čitao o Microsoft Sculpt Touch bežični miš i odlučio ga kupiti. Nakon što sam ga neko vrijeme koristio, odlučio sam s njim podijeliti svoj...
Trackpad i pokazivač miša na ekranu AppyMouse za Windows tablete
Korisnicima tableta često nedostaje pokazivač miša, posebno kada su navični koristiti prijenosna računala. Pametni telefoni i tableti osjetljivi na do...