Linux parancsok

Bash Tac parancs

Bash Tac parancs
A Tac egyike azoknak a parancsoknak, amelyeket csak addig tud felismerni, amíg még nem hajtotta végre és újra feltalálta a kereket, ami nem ritka a programozás gyakorlatában, függetlenül attól, hogy csak a köteleket tanulja-e, vagy több éves tapasztalattal rendelkező szakember. büszkélkedhetsz, fantasztikus vagy. Ha a kezed tiszta, akkor jó neked; Akárhogy is, élvezetes vagy, kirakok mindent, amit tudok a tac parancsról és még sok mást. Olvass tovább.

Más néven fordított macska, tac egy egyszerű parancssori segédprogram, amely lehetővé teszi a kimenet sorainak megfordítását a | beépített csőkezelő és tac. Vagyis ha van egy parancsod, bal oldali (lhs), és meg akarod fordítani a kimenet tartalmát, akkor csak annyit tennél, hogy beírod az lhs | tac. Ez az!

El kell ismerni, hogy a tac-nál több is van, mint amilyennek látszik. Ne aggódj. Jó időn belül lefedjük az egészet.

Tanácsok a tac-hoz

Használni vagy nem használni, ez a kérdés. Nem akarod, hogy ne akarj tacskolni, amikor nem muszáj. Ha azonban a tac-ot kenyér és vaj parancsként akarod terjeszteni, akkor rajtad múlik. Addig is itt van a tanácsom, hogy mindkét fél tac-ot vegyen fel, hogy ne maradjon semleges.

Mikor kell használni a tac-ot

Vannak esetek, amikor a tac használatával többet hozhat ki a parancssorból, kevesebb kóddal és az lhs parancsopcióinak kutatásával töltött idővel.

Amikor nem vagy biztos az lhs opcióiban

Sok olyan parancsnál, mint a rendezés, lehetőség van a parancs kimenetének megfordítására. Ha azonban nem biztos abban, hogy a bal oldali parancsnak van -r opciója a kimenet visszafordításához, akkor a tac használata biztos módja a kimeneti sorok megfordítására.

Amikor a teljesítmény nem számít

Bár jelentéktelen, a beépített opcióval együtt használt legtöbb parancs a kimenet visszafordításához jobban teljesít, mint a kimenet tac-ra történő csövezése. Tehát, ha egy kis teljesítménybeli lemaradás nem kérdés, akkor rendben van a tac-ba vezetni a kimenet visszafele lejátszásához.

Mikor ne használjuk a tac-ot

Van, amikor nem használhatja a tac-ot, mert jobban tudja. Íme néhány megjegyzendő.

Ha tudja, hogy az lhs-n lévő parancsnak lehetősége van a kimeneti sorok megfordítására

Mint mondtam: „A legtöbb parancs rendelkezik a kimenet visszafordításának lehetőségével.”Ha tudja, hogy egy adott lhs parancsnak van opciója, akkor nem használhatja a tac parancsot. Végül is az -r rövidebb, mint - | tac.

Amikor a teljesítmény számít

Mint mondtam: „Az lhs fordított opció használata jobban teljesíthet, mint a tac.”Ha néhány másodpercet szeretne kihúzni egy bash szkriptben, vagy nagyobb fájlokkal foglalkozik, amelyek olvasása időt igényel, akkor nem használhatja a tac.

Tac segítség

A súgó parancs futtatása a tac vagy a man tac számára megmutatja a felhasználást és az esetleg használható opciókat. Itt van, amire számíthat.

Parancsok

tac --segítség

Kimenet

Tac verzió

Milyen verzió vagyok?
Te vagy önmagad legújabb verziója. Abban az esetben azonban, hogy milyen verziója van a tac-nak, erre van lehetőség.

Parancsok

tac --verzió

Kimenet

Megjegyzések

Ha tac-ot használ FreeBSD-n vagy macOS-on, akkor a verzió hosszú opciója nem biztos, hogy elérhető. Ebben az esetben próbálkozzon a -v vagy a man tac paranccsal. Ha megpróbálta, tudassa velem. Kíváncsi vagyok. Köszönöm

Tac opciók

A súgó és a verzió mellett a tac-nak nincs sok lehetősége. Amire van, biztosan megtudja, hogy a tac nem akármilyen régi fordított macska.

Tac előtt opció

A -b opció lehetővé teszi az elválasztó kimenethez való csatlakoztatásának megváltoztatását. Alapértelmezés szerint az újsor elválasztó minden sor után csatolva van.

Tudom, hogy zavaró. Bontjuk le példánként.

Először nézzük meg, hogy néz ki a kimenetünk, mielőtt a tac -b-t használnánk.

Parancsok

10. sz

Kimenet

Most nézzük meg, mivé alakul a kimenetünk a -b nélküli tac használata után.

Parancsok

10. sz tac

Kimenet

Most nézzük meg, mivé alakul a kimenet a tac -b használatával.

Parancsok

10. sz tac -b

Kimenet

Tac elválasztó opció

Az elválasztó opció, a 'literal string' segítségével megadhatja azt a karaktert vagy karaktersorozatot, amelyet a tac használ a sorok elkülönítésére. Alapértelmezés szerint az újsoros karaktert ('0a' hexában) használják.

A tac elválasztó opció használata elsőre nem egyértelmű. Miután azonban tudta, hogy ott van, nehéz nem megpróbálni használni.

Tekintsük a következő példát, amely hatszögben ábrázolt vonalakon működik.

Parancsok

20. sz xxd -ps | tac -s '0a' | xxd -ps -r

Kimenet

Megjegyzések

(1) Triviálisnak tűnhet, mint a 20 | tac parancs azonban ebben az esetben nem töltöttünk időt a kimeneti adatfolyam hexadecimális feldolgozásával. Ennek a mintának a használata akkor hasznos, ha a külön nem valami triviális, mivel az új vonalkarakter, például a nulladik bájt.

Most kevésbé próbáld meg használni a tac-ot valamivel kevésbé nyersen és több metában, például az egyszerű HTML-ben.

Vegye figyelembe a következő fájlt.

File

A
B
C

Parancsok

fájl () echo -e "A
B
C
";
fájl | tac -s "
"

Kimenet

Sikerült konvertálni a HTML oldalt

A
B
C

-ba

C
B
A

tac használatával.

Tegyük fel, hogy valamivel bonyolultabb dolgot kell tennie, például bármilyen címkét tac elválasztóként kezelni. Ebben az esetben nem fog megúszni pusztán az elválasztó opció használatát. Itt jön be a regex opció. Az elválasztó opcióval kombinálva többet tehet a tac paranccsal, mint a fájlban egy sort megfordítani. Itt van, hogyan.

Tac regex opció

A regex opció -r -s 'regex' segítségével megadhatja, hogy az elválasztó karakterláncot reguláris kifejezésként kell kezelni.

A tac regex opció használata ugyanolyan egyszerű, mint az -r opció hozzáadása az elválasztó előtt vagy után.

Tekintsük az előző példát a regex opció használatával az elválasztó opcióval együtt. Kezeljük a tac-et a jelölőcímkékkel elválasztóként.

File



egyszerű funkciók


A funkciók egyszerűek a bash-ban. Legalábbis ez az. Egy húr kerül a képernyőre.


Parancsok


egyszerű funkció
()
visszhang
amilyen egyszerű egyszerű funkció

Forrás: https: // temptemp3.github.io / bash-függvények

Parancsok

fájl ()

visszhang



egyszerű funkciók

A funkciók egyszerűek a bash-ban. Legalábbis ez az. A
karakterlánc a képernyőn.

Parancsok



egyszerű funkció

(
)

visszhang amilyen egyszerű

egyszerű funkció
"

fájl | tac -r -s "] *."

Kimenet

A fájlt megfordító HTML oldalt HTML címkékkel sikerült konvertálni. Ha megnézi a részleteket, észreveszi, hogy még nem tökéletes.

Tac parancs tiszta bash-ban

Itt van a tiszta bash-ban a tac implementáció primitív változata, amely megfordítja az lhs paranccsal vezetett vonalakat. A jövőbeli verziók gyakorlatként maradnak.

#!/ bin / bash
## tac
## 0. verzió.0.1 - kezdeti
##########################################################
tac ()
helyi -a arr
helyi -i i
mapfile arr -
i = "$ # arr [@]"
míg [$ i -ge 0]
csinálni
echo $ arr [i]
legyen i- = 1
Kész

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

Forrás: https: // github.com / temptemp3 / ba.sh / blob / master / tac.SH

Tac parancs más parancsokkal

Íme a tac implement néhány primitív változata, amelyek más parancsokat használnak, amelyek megfordítják az lhs paranccsal beillesztett vonalakat. A jövőbeli verziók gyakorlatként maradnak.

Mielőtt belekezdenénk, csukja be a szemét, és gondolkodjon: „Mit lehetne használni a tac primitív változatának megvalósításához??”
Sok parancs jut eszembe, de azokra fogok összpontosítani, amelyekre van helyünk.

gawk

Hasonlóan a tiszta bash példában szereplő Tac parancshoz, a tac megvalósításához először az összes sor elolvasása után fordítva tároljuk az újra lejátszandó olvasási sorokat. Így néz ki a gawk használatával.

 gawk 'line [++ line [0]] = $ (0) END for (i = 0; i

Most próbálja meg használni az lhs 10-es parancsot.

 10. sz gawk 'line [++ line [0]] = $ (0) END for (i = 0; i

Ahogy elvárható lenne a kimenet

Feladatok

1. Az lhs () szekvencia 10; felsorolja az 1–10 egész számokat. Írjon ki egy rhs parancsot úgy, hogy lhs | rhs egyenlő 10864213579 csak tac használatával (Tipp: lásd Tac előtt opció példa)
2. Fordítsa meg az rhs () kimenetét find -mindepth 1 -maxdepth 1 -print0; a tac használatával (Tipp: lásd a Tac elválasztó opció példáját)
3. Hosszabbítsa a tac-ot.sh (a Tac parancsban tiszta bash), hogy pontosan úgy viselkedjen, mint a tac. Be kell adnia a lehetőségeket, és ellenőriznie kell a viselkedésüket.
4. Rekurzív függvényként valósítsa meg a tiszta bash-ban a tac primitív változatát.

TL; DR

Ismét élveztem a Bash tac parancs megírását. Miután elolvastam, remélem, hogy meg tudja állapodni abban, hogy több van a tac-ban, mint gondolta. Ezenkívül, miután megpróbáltam a dolgokat a fenék közelében, nehezen végrehajtani, remélem, hogy tudja, mennyire hasznos lehet a tac parancs. Ha valakinek sikerül elvégeznie valamelyik gyakorlatot, vagy segítségre van szüksége a házi feladatok elvégzéséhez, szóljon nekem. Köszönöm,

Az FPS növelése Linux alatt?
Az FPS jelentése Képkocka másodpercenként. Az FPS feladata a videolejátszások vagy játékteljesítmények képkockasebességének mérése. Egyszerű szavakkal...
A legnépszerűbb Oculus App Lab játékok
Ha Oculus fülhallgató-tulajdonos, akkor tisztában kell lennie az oldalsó töltéssel. Az oldaltöltés a nem áruházi tartalom fejhallgatóra történő telepí...
A legjobb 10 játék az Ubuntuban
A Windows platform a játékok egyik domináns platformja volt, mivel a játékokat hatalmas százalékban fejlesztik ma a natív Windows támogatására. Kihívh...