Linuxi käsud

Bash Taci käsk

Bash Taci käsk
Tac on üks neist käskudest, mida ei saa aru enne, kui olete juba käinud ja teinud, ratta uuesti leiutanud, mis pole programmeerimise praktikas haruldane, kas õpite lihtsalt köisi või olete professionaalne, kellel on aastatepikkune kogemus. kiidelda, sa oled vinge. Kui su käed on puhtad, siis on see sulle hea; Mõlemal juhul on teil käes maius, laadin maha kõik, mida tac-käsu kohta tean ja palju muud. Loe edasi.

Tuntud ka kui tagurpidi kass, hõlbusta lihtsat käsurea utiliiti, mis võimaldab väljundis ridu muuta, kasutades | sisseehitatud toruoperaator ja takt. See tähendab, et kui teil on käsk, vasakpoolne külg (lhs) ja soovite selle väljundi sisu ümber pöörata, siis teeksite vaid lhs | tac. See selleks!

Tuleb tunnistada, et peidus on veel midagi, mis silma peal paistab. Ära muretse. Me kajastame seda kõike õigeaegselt.

Nõuanded takt

Kas kasutada või mitte kasutada, see on küsimus. Sa ei taha, et ei taha, kui ei pea. Kui soovite aga levitada taci oma leiva ja või käsuna, on see teie otsustada. Seniks on siin minu nõuanne taktide võtmiseks, et mõlemad pooled jääksid neutraalseks.

Millal kasutada tac

Mõnikord võib kasutada tac-i, mis aitab teil käsurealt rohkem kasu saada, kasutades vähem koodi ja kulutades aega lhs-i käsuvalikute uurimiseks.

Kui te pole kindel lhs-i valikutes

Paljudel käskudel, näiteks sortimine, on võimalus käsu väljund ümber pöörata. Kui te pole kindel, kas vasakpoolsel käsul on väljundi tagasikäiguks -r võimalus, on tac kasutamine kindel viis väljundliinide ümberpööramiseks.

Kui jõudlus pole oluline

Kuigi see on ebaoluline, toimivad enamus käske, mida kasutatakse koos sisseehitatud suvandiga väljundi tagurdamiseks, paremini kui väljundi edastamine tac-i. Nii et kui väike jõudluse viivitus pole probleem, on torustiku sisestamine taktikasse, et väljundit taasesitada vastupidiselt.

Millal tac-i mitte kasutada

On olukordi, kus te ei pruugi tac-i kasutada, sest teate paremini. Siin on mõned tähelepanuväärsed.

Kui teate, et lhs-s oleval käsul on võimalus väljundi read ümber pöörata

Nagu ma ütlesin: „Enamikul käskudel on võimalus väljundit tagasi pöörata."Kui teate, et konkreetsel käsul lhs on valik, ei tohi te tac-i kasutada. Lõppude lõpuks on -r lühem kui - | tac.

Kui jõudlus on oluline

Nagu ma ütlesin: „Lhs vastupidise variandi kasutamine võib toimida paremini kui tac."Kui soovite mõne sekundi bash-skripti välja pigistada või kui tegelete suuremate failidega, mille lugemiseks on vaja aega, ei tohi te tac-i kasutada.

Tac abi

Tac- või man tac-i abikäskluse käivitamine näitab kasutamist koos võimalike võimalustega. Siin on see, mida oodata.

Käsud

tac --abi

Väljund

Tac versioon

Mis versioon ma olen?
Olete iseenda uusim versioon. Kuid mis versioon teie tac on, on selleks ka üks võimalus.

Käsud

tac --versioon

Väljund

Märkused

Kui kasutate FreeBSD-s või macOS-is tac-i, ei pruugi versiooni pikk valik olla saadaval. Sel juhul proovige -v või man tac. Kui olete seda proovinud, andke mulle teada. Olen uudishimulik. Aitäh

Tac-valikud

Abi ja versiooni kõrval pole tacil palju võimalusi. Selle jaoks, mida tal on, saate kindlasti teada, et tac pole lihtsalt ükski vana tagurpidi kass.

Tac enne valikut

Valik -b võimaldab teil muuta, kuidas eraldaja väljundis kinnitatakse. Vaikimisi on uue rea eraldaja lisatud iga rea ​​järel.

Ma tean, et see on segane. Jagame selle näitena.

Enne tac -b kasutamist vaatame, milline on meie väljund.

Käsud

10. järjestus

Väljund

Vaatame nüüd, milliseks muutub meie väljund pärast tac-i kasutamist ilma -b.

Käsud

järgnev 10 | tac

Väljund

Nüüd vaatame, mis väljundist saab tac -b.

Käsud

järgnev 10 | tac -b

Väljund

Tac-eraldaja võimalus

Eraldusvõimalus -s 'sõnasõnaline string' võimaldab teil määrata märgi või tähemärkide järjestuse, mida tac kasutab ridade eraldamiseks. Vaikimisi kasutatakse uue rea märki ('0a' kuusnurgas).

Tac-eraldaja valiku kasutamine pole esialgu ilmne. Kui aga tead, et see on olemas, on seda mitte proovida kasutada.

Mõelge järgmisele näitele, töötades kuusnurgal kujutatud joontega.

Käsud

järgnev 20 | xxd -ps | tac -s '0a' | xxd -ps -r

Väljund

Märkused

(1) See võib tunduda tühine, kui kasutada seq 20 | tac käsk, aga sellisel juhul ei kulutanud me aega väljundvoolu töötlemisel heksades. Selle mustri kasutamine on kasulik, kui eraldis pole midagi tühist, kuna uus reamärk nagu null-bait.

Nüüd proovige vähem kasutada tac-i millelegi veidi vähem toorele ja rohkem meta-le nagu lihtsale HTML-ile.

Mõelge järgmisele failile.

Fail

A
B
C

Käsud

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

Väljund

Meil õnnestus HTML-leht teisendada

A
B
C

sisse

C
B
A

kasutades tac.

Oletame, et peate tegema midagi veidi keerulisemat, näiteks käsitlema suvalist silti tac-eraldajana. Sel juhul ei pääse te ainult eraldusvõimaluse kasutamisest. Seal tuleb sisse regex-variant. Koos eraldusvõimalusega võimaldab see käsuga tac teha rohkem kui faili rea ümberpööramine. Siit saate teada.

Tac regexi variant

Regexi valik -r -s 'regex' võimaldab teil määrata, et eraldusstringi tuleb käsitleda regulaaravaldisena.

Valiku tac regex kasutamine on sama lihtne kui lisamise võimalus enne separaatorit või pärast eraldajat.

Vaadake eelmist näidet, kasutades regexi valikut koos eraldusvõimalusega. Laske tacil kõiki märgistussilte eraldajana käsitleda.

Fail



lihtsad funktsioonid


Funktsioonid on bashis lihtsad. Vähemalt see on. See paneb ekraanile stringi.


Käsud


lihtne funktsioon
()
kaja
nii lihtne kui saab lihtne funktsioon

Allikas: https: // tempptemp3.github.io / bash-funktsioonid

Käsud

fail ()

kaja '



lihtsad funktsioonid

Funktsioonid on bashis lihtsad. Vähemalt see on. See paneb a
string ekraanil.

Käsud



lihtne funktsioon

(
)

kaja nii lihtne kui saab

lihtne funktsioon
"

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

Väljund

Meil õnnestus HTML-i sildid kasutades faili vastupidi teisendada. Kui uurite üksikasju, märkate, et see pole veel täiuslik.

Tac-käsk puhtas bashis

Siin on puhta bashi tac-seadme primitiivne versioon, mis muudab lhs-käsu abil sisestatud read. Tulevased versioonid jäetakse harjutuseks.

#!/ bin / bash
## tac
## versioon 0.0.1 - esialgne
########################################################
tac ()
kohalik -a arr
kohalik -i i
mapfile arr -
i = "$ # arr [@]"
samas [$ i -ge 0]
tegema
kaja $ arr [i]
olgu i- = 1
tehtud

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

Allikas: https: // github.com / temptemp3 / ba.sh / kämp / master / tac.sh

Tac käsk teiste käskude abil

Siin on mõned tac-rakenduse primitiivsed versioonid, kasutades muid käske, mis muudavad käsud lhs sisestatud read ümber. Tulevased versioonid jäetakse harjutuseks.

Enne alustamist sulgege silmad ja mõelge: „Mida saaks kasutada taci primitiivse versiooni rakendamiseks?”
Tuleb meelde palju käske, kuid keskendun neile, millele meil ruumi on.

gawk

Sarnaselt puhta bashi näites Tac-i käsuga salvestame tac-i rakendamiseks kõigepealt taasesitatavad lugemis read pärast kõigi ridade lugemist tagurpidi. Gawki abil näeks välja järgmine.

 gawk 'rida [++ rida [0]] = $ (0) LÕPPE jaoks (i = 0; i

Nüüd proovige kasutada käsku lhs seq 10.

 järgnev 10 | gawk 'rida [++ rida [0]] = $ (0) LÕPPE jaoks (i = 0; i

Nagu arvata võiks, on väljund

Harjutused

1. Funktsioon lhs () seq 10; loetleb täisarvud 1 kuni 10. Kirjutage rhs-käsk välja nii, et lhs | rhs võrdub 10864213579 ainult kasutades tac (vihje: vt Tac enne valiku näidet)
2. Tagurpidi väljund rhs () leia -mindepth 1 -maxdepth 1 -print0; , kasutades tac (vihje: vt Tac separaatori valiku näidet)
3. Laiendage takti.sh (käsk Tac puhas bash) käituda täpselt nagu tac. Peate lisama valikud ja kindlasti kontrollima nende käitumist.
4. Rakendage rekursiivse funktsioonina puhta bashi primitiivne versioon tac.

TL; DR

Jälle meeldis mulle kirjutada Bash tac käsk. Pärast lugemist loodan, et saate nõustuda, et peidus on rohkem kui arvasite. Pärast seda, kui olete üritanud põhja lähedal asuvaid asju teha, loodan, et teate, kui kasulik võiks olla käsk tac. Kui kellelgi õnnestub mõni harjutus lõpule viia või tal on vaja kodutööde tegemisel abi, andke mulle sellest teada. Aitäh,

Microsoft Sculpt Touch juhtmeta hiirte ülevaade
Lugesin hiljuti Microsoft Sculpt Touch juhtmevaba hiir ja otsustas selle osta. Pärast mõnda aega kasutamist otsustasin jagada sellega oma kogemusi. Se...
Rakenduse AppyMouse ekraanipaneel ja hiirekursor Windowsi tahvelarvutitele
Tahvelarvutite kasutajad tunnevad hiirekursorit sageli puudust, eriti kui neil on kombeks sülearvuteid kasutada. Puutetundliku ekraaniga nutitelefonid...
Hiire keskmine nupp ei tööta Windows 10-s
The hiire keskmine nupp aitab teil sirvida pikki rohke andmega veebisaite ja ekraane. Kui see peatub, siis lõpuks kasutate kerimiseks klaviatuuri, mis...