Ukazi za Linux

Ukaz Bash Tac

Ukaz Bash Tac
Tac je eden tistih ukazov, ki se ga ne zavedate, dokler tega še niste storili in znova izumili kolesa, kar v praksi programiranja ni nenavadno, ali se le učite vrvi ali ste strokovnjak z dolgoletnimi izkušnjami. pohvalite se, super ste. Če so vaše roke čiste, potem dobro za vas; Kakorkoli že, čaka vas priboljšek, raztovoril bom vse, kar vem o ukazu tac in še več. Beri naprej.

Znan tudi kot povratna mačka, tac je preprost pripomoček za ukazno vrstico, ki omogoča obračanje vrstic v izhodu z uporabo | vgrajeni upravljavec cevi in ​​tac. To pomeni, da če imate ukaz na levi strani (lhs) in želite obrniti vsebino njegovega izhoda, morate le vpisati lhs | tac. To je to!

Resda je takta več, kot se zdi na prvi pogled. Ne skrbi. Vse bomo pokrili, pravočasno.

Nasveti glede tac

Uporabljati ali ne uporabljati, je to vprašanje. Ne boste, ne želite, da se tacnete, ko vam ni treba. Če pa želite tac širiti kot ukaz za kruh in maslo, je odvisno od vas. Medtem je tu moj nasvet, kako naj se obe strani zavzameta za nevtralnost.

Kdaj uporabiti tac

Včasih je treba uporabiti tac, s pomočjo katerega boste dobili več iz ukazne vrstice z manj kode in porabljenega časa za raziskovanje ukaznih možnosti lhs.

Ko niste prepričani o možnostih lhs

Številni ukazi, kot je razvrščanje, imajo možnost razveljavitve izhoda ukaza. Če pa niste prepričani, ali ima ukaz na levi strani možnost -r za obračanje izhoda, je uporaba tac zanesljiv način za obračanje izhodnih vrstic ali ne.

Kadar uspešnost ni pomembna

Čeprav so nepomembni, večina ukazov, uporabljenih v povezavi z vgrajeno možnostjo povratnega izhoda, deluje boljše kot cevovod izhoda v tac. Torej, če malo zaostajanja v zmogljivosti ni težava, je vstavljanje v tac za predvajanje izhodov v obratni smeri v redu.

Kdaj ne uporabljati tac

Včasih ne smete uporabljati tac, ker veste bolje. Tukaj je nekaj opozoriti.

Ko veste, ima ukaz na lhs možnost obrniti izhodne vrstice

Kot sem rekel, »Večina ukazov ima možnost povratnega izpisa.”Če veste, da ima določen ukaz lhs možnost, ne smete uporabljati tac. Navsezadnje je -r krajši od - | tac.

Ko je uspešnost pomembna

Kot sem rekel, »Uporaba lhs vzvratne možnosti je lahko boljša od tac."Če želite v bashovem skriptu iztisniti nekaj sekund ali imate opravka z večjimi datotekami, ki potrebujejo čas za branje, morda ne boste uporabili tac.

Tac pomoč

Zagon ukaza za pomoč za tac ali man tac prikazuje uporabo skupaj z možnostmi, ki jih je mogoče uporabiti. Tukaj lahko pričakujete.

Ukazi

tac --pomoč

Izhod

Tac različica

Kakšna različica sem?
Ste zadnja različica sebe. Vendar v primeru, katera različica je vaš tac, obstaja možnost za to.

Ukazi

tac --verzija

Izhod

Opombe

Če uporabljate tac na FreeBSD ali macOS, dolga možnost za različico morda ne bo na voljo. V tem primeru poskusite -v ali man tac. Če ste poskusili, mi sporočite. radoveden sem. Hvala

Tac možnosti

Poleg pomoči in različice tac nima veliko možnosti. Za to, kar ima, boste zagotovo ugotovili, da tac ni le katera koli stara mačka nazaj.

Možnost takta pred

Možnost -b vam omogoča, da spremenite način pritrditve ločila na izhodu. Ločnica nove vrstice je privzeto priložena za vsako vrstico.

Vem, da je zmedeno. Razčlenimo ga na primeru.

Najprej poglejmo, kako izgleda naš izhod, preden uporabimo tac -b.

Ukazi

10. zapored

Izhod

Zdaj pa poglejmo, v kaj se spremeni naš izhod po uporabi tac brez -b.

Ukazi

zaporedje 10 | tac

Izhod

Zdaj pa poglejmo, v kaj se rezultat spremeni s pomočjo tac -b.

Ukazi

zaporedje 10 | tac -b

Izhod

Možnost ločevanja tac

Možnost ločila -s 'dobesedni niz' vam omogoča, da določite znak ali zaporedje znakov, ki jih tac uporablja za ločevanje vrstic. Privzeto se uporablja znak nove vrstice ('0a' v šestnajstiškem znaku).

Kako uporabiti možnost ločevanja tac, sprva ni očitno. Ko pa enkrat veste, da je tam, ga težko ne poskusite uporabiti.

Razmislite o naslednjem primeru, ki deluje na črte, predstavljene v šestnajstiški vrstici.

Ukazi

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

Izhod

Opombe

(1) Zdi se nepomembno, če bi uporabili naslednjo 20 | ukaz tac, vendar v tem primeru nismo porabili časa za delo z izhodnim tokom v hex. Uporaba tega vzorca je koristna, kadar ločeno ni nekaj trivialnega, kot je znak nove vrstice, na primer ničli bajt.

Zdaj manj poskusite uporabiti tac za nekaj malo manj surovega in bolj meta, kot je preprost HTML.

Razmislite o naslednji datoteki.

mapa

A
B
C

Ukazi

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

Izhod

Uspelo nam je pretvoriti stran HTML

A
B
C

v

C
B
A

z uporabo tac.

Recimo, da morate narediti nekaj bolj zapletenega, na primer katero koli oznako obravnavati kot ločilo tac. V tem primeru se ne boste izognili samo uporabi možnosti ločevanja. Tu pride možnost regex. V kombinaciji z ločevalno možnost vam omogoča, da z ukazom tac naredite več kot vrnete vrstico v datoteki. Evo kako.

Tac možnost regularnega izraza

Z možnostjo regularnega izraza -r -s 'regex' lahko določite, da naj bo ločevalni niz obravnavan kot regularni izraz.

Kako uporabiti možnost tac regex je tako preprosto, kot da dodate možnost -r pred ali za ločevalnikom.

Razmislite o prejšnjem primeru z uporabo možnosti regularnega izraza v povezavi z možnostjo ločevanja. Naj tac vsako označno oznako obravnava kot ločilo.

mapa



preproste funkcije


Funkcije so v bash preproste. Vsaj ta je. Na zaslon postavi niz.


Ukazi


enostavna funkcija
()
odmev
čim bolj preprosto enostavna funkcija

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

Ukazi

mapa ()

odmev



preproste funkcije

Funkcije v bash so preproste. Vsaj ta je. Postavlja a
niz na zaslonu.

Ukazi



enostavna funkcija

(
)

odmev čim bolj preprosto

enostavna funkcija
"

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

Izhod

Uspelo nam je pretvoriti stran HTML, ki je datoteko obrnila, z uporabo oznak HTML. Če pogledate podrobnosti, boste opazili, da še ni popoln.

Tac ukaz v čisti bash

Tu je primitivna različica izvedbe tac v pure bash, ki obrne vrstice, ki jih vnese ukaz lhs. Prihodnje različice so ostale kot vaja.

#!/ bin / bash
## tac
## različica 0.0.1 - začetnica
####################################################
tac ()
krajevno -pr
lokalni -i i
mapfile arr -
i = "$ # arr [@]"
medtem ko [$ i -ge 0]
naredi
echo $ arr [i]
naj bo i- = 1
Končano

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

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

Tac ukaz z uporabo drugih ukazov

Tu je nekaj primitivnih različic izvedbe tac z uporabo drugih ukazov, ki obrnejo vrstice, ki jih vnese ukaz lhs. Prihodnje različice so ostale kot vaja.

Preden začnemo, zaprite oči in pomislite: »Kaj bi lahko uporabili za izvedbo primitivne različice tac?"
Na misel mi pride veliko ukazov, osredotočil pa se bom na tiste, za katere imamo prostor.

gawk

Podobno kot ukaz Tac v primeru čistega basha, bi za izvajanje taca najprej shranili prebrane vrstice, ki jih je treba predvajati v obratni smeri, potem ko so prebrane vse vrstice. Tukaj je, kako bi bilo videti z uporabo gawk.

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

Zdaj poskusite uporabiti ukaz lhs seq 10.

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

Kot bi pričakovali, je rezultat

Vaje

1. Funkcija lhs () naslednja 10; navaja cela števila od 1 do 10. Napišite ukaz rhs tako, da je lhs | rhs je enako 10864213579 samo z uporabo tac (Namig: glej Tac pred primerom možnosti)
2. Obrni izhod rhs () najdi -mindepth 1 -maxdepth 1 -print0; z uporabo tac (Namig: glej primer možnosti ločila tac)
3. Podaljšajte tac.sh (v ukazu Tac v čistem bashu), da se obnaša točno tako. Dodati boste morali možnosti in preizkusiti njihovo vedenje.
4. Izvedite primitivno različico tac v pure bash kot rekurzivno funkcijo.

TL; DR

Spet sem užival pri pisanju ukaza Bash tac. Po branju upam, da se lahko strinjate, da je takta še več, kot ste mislili. Tudi po tem, ko poskušam narediti nekaj na dnu, upam, da veste, kako koristen bi bil ukaz tac. Če komu uspe opraviti katero od vaj ali potrebuje pomoč pri domačih nalogah, mi to sporočite. Hvala,

Najboljše laboratorijske igre Oculus App
Če ste lastnik slušalk Oculus, morate biti seznanjeni s stranskim nalaganjem. Sideloading je postopek namestitve vsebine, ki ni shranjena v slušalke. ...
10 najboljših iger za igranje v Ubuntuju
Platforma Windows je bila ena izmed prevladujočih platform za igre na srečo zaradi velikega odstotka iger, ki se danes razvijajo za naravno podporo si...
5 najboljših arkadnih iger za Linux
Dandanes so računalniki resni stroji, ki se uporabljajo za igre na srečo. Če ne boste mogli dobiti novega visokega rezultata, boste vedeli, kaj mislim...