Како користити Линук цат анд тац команде

Команде цат и тац приказују садржај текстуалних датотека, али има више него што се на први поглед чини. Зароните мало дубље и научите неке продуктивне трикове командне линије за Линук.

Ово су две једноставне мале команде, које се често одбацују као само то — превише једноставне да би биле од било какве стварне користи. Али када сазнате на које различите начине можете да их користите, видећете да су савршено способни да ураде свој део тешког посла када је у питању рад са датотекама.

Тхе цат Цомманд

мачка је навикла испитати садржај текстуалних датотека, и да спојите делове датотека у једну већу датотеку.

У једном тренутку — још у ери диал-уп-а модем—бинарне датотеке су често биле разбијене на неколико мањих датотека како би се преузимање олакшало. Уместо преузимања једне велике датотеке, повукли сте сваку мању датотеку. Ако једна датотека није успела да се правилно преузме, само бисте поново преузели ту датотеку.

Наравно, тада вам је био потребан начин да поново конституишете колекцију мањих датотека у једну радну бинарну датотеку. Тај процес се звао спајање. И ту је дошла мачка и одакле је добила име.

Широкопојасне и оптичке везе узроковале су да та посебна потреба избледи—слично као шкрипави звукови диал-уп-а—па шта преостаје мачки да ради данас? У ствари доста.

Приказ текстуалне датотеке

Да бисте поставили цат листу садржаја текстуалне датотеке у прозор терминала, користите следећу команду.

Уверите се да је датотека текстуална датотека. Ако покушате да наведете садржај бинарне датотеке у прозор терминала, резултати ће бити непредвидиви. Можда ћете завршити са закључаном терминалском сесијом или још горе.

cat poem1.txt

Садржај датотеке поем1.ткт је приказан у прозору терминала.

То је само половина познате песме. Где је остатак? Овде постоји још једна датотека која се зове поем2.ткт. Једном командом можемо направити цат листу садржаја више датотека. Све што треба да урадимо је да наведемо датотеке по редоследу у командној линији.

cat poem1.txt poem2.txt

То изгледа боље; сада имамо целу песму.

Коришћење мачке Са мање

Песма је ту, али је пребрзо пролетела поред прозора да би прочитала првих неколико стихова. Можемо пренети излаз из цат у мање и померати се кроз текст нашим сопственим темпом.

cat poem1.txt poem2.txt | less

Сада можемо да се крећемо уназад и унапред кроз текст у једном току, иако се налази у две одвојене текстуалне датотеке.

  Како инсталирати Вине Стагинг на Линук

Нумерисање линија у датотеци

Можемо имати мачку да нумерише редове у датотеци онако како је приказана. Да бисмо то урадили, користимо опцију -н (број).

cat -n poem1.txt

Линије су нумерисане онако како су приказане у прозору терминала.

Немојте нумерисати празне линије

Успели смо да редове нумеришемо по мачки, али се броје и празни редови између стихова. Да би редови текста били нумерисани, али да бисте игнорисали празне редове, користите опцију -б (број-непразан).

cat -b poem1.txt

Сада су редови текста нумерисани, а празни редови се прескачу.

Не приказуј више празних линија

Ако постоје делови узастопних празних редова у датотеци, можемо замолити мачку да игнорише све осим једног празног реда. Погледај овај фајл.

Следећа команда ће довести до тога да мачка прикаже само једну празну линију из сваке гомиле празних редова. Опција која нам је потребна да то постигнемо је опција -с (скуеезе-бланк).

cat -s poem1.txt

Ово ни на који начин не утиче на садржај датотеке; само мења начин на који мачка приказује датотеку.

Дисплаи Табс

Ако желите да знате да ли је размак узрокован размацима или табулаторима, можете сазнати помоћу опције -Т (схов-табс).

cat -T poem1.txt

Картице су представљене знаковима „^И“.

Приказ крајева линија

Можете да проверите да ли постоје празни размаци на крају помоћу опције -Е (схов-ендс).

cat -E poem1.txt

Крајеви линија су представљени знаком „$“.

Спајање датотека

Нема смисла имати песму сачувану у два фајла, са по једном половином у сваком. Хајде да их спојимо и направимо нову датотеку са целом песмом у њој.

cat poem1.txt poem2.txt > jabberwocky.txt

цат поем1.ткт поем2.ткт > јаббервоцки.ткт у прозору терминала” видтх=”646″ хеигхт=”57″ онлоад=”пагеспеед.лазиЛоадИмагес.лоадИфВисиблеАндМаибеБеацон(тхис);”  онеррор=”тхис.онеррор=нулл;пагеспеед.лазиЛоадИмагес.лоадИфВисиблеАндМаибеБеацон(тхис);”></п> <п>хајде да користимо цат да проверимо нашу нову датотеку:</п> <пре>цат јаббервоцки.ткт</пре > <п><имг срц=

Наша нова датотека садржи садржај друге две датотеке.

Додавање текста у постојећу датотеку

То је боље, али у ствари, то није цела песма. Последњи стих недостаје. Последњи стих у Јаббервоцки је исти као и први стих.

Ако имамо први стих у датотеци, можемо га додати на дно датотеке јаббервоцки.ткт и имаћемо комплетну песму.

У овој следећој команди, морамо да користимо >>, а не само >. Ако користимо један >, преписаћемо јаббервоцки.ткт. Не желимо то да радимо. Желимо да додамо текст на дно.

cat first_verse.txt >> jabberwocky.txt

цат фирст_версе.ткт >> јаббервоцки.ткт у прозору терминала” видтх=”646″ хеигхт=”57″ онлоад=”пагеспеед.лазиЛоадИмагес.лоадИфВисиблеАндМаибеБеацон(тхис);”  онеррор=”тхис.онеррор=нулл;пагеспеед.лазиЛоадИмагес.лоадИфВисиблеАндМаибеБеацон(тхис);”></п> <п>Хајде да проверимо садржај датотеке јаббервоцки.ткт:</п> <пре>цат јаббервоцки.ткт< /пре> <п><имг срц=

И коначно, сви делови песме су заједно.

  Како претворити веб локације у Линук апликације помоћу веб каталога

Преусмеравање стдин

Можете да преусмерите унос са тастатуре у датотеку користећи цат. Све што унесете се преусмерава у датотеку док не притиснете Цтрл+Д. Имајте на уму да користимо један > јер желимо да креирамо датотеку (или да је заменимо, ако постоји).

cat > my_poem.txt

цат > ми_поем.ткт у прозору терминала” видтх=”646″ хеигхт=”57″ онлоад=”пагеспеед.лазиЛоадИмагес.лоадИфВисиблеАндМаибеБеацон(тхис);”  онеррор=”тхис.онеррор=нулл;пагеспеед.лазиЛоадИмагес.лоадИфВисиблеАндМаибеБеацон(тхис);”></п> <п>Можемо да почнемо да куцамо чим издамо команду.  Притиснули смо Цтрл+Д када смо завршили.  Затим можемо да проверимо садржај нове датотеке са:</п> <пре>цат ми-поем.ткт</пре> <п><имг срц=

Тај звук као далека турбина је вероватно Луис Керол који се врти у свом гробу великом брзином.

Тац Цомманд

тац је сличан цат, али наводи садржај датотека обрнутим редоследом.

Да видимо то:

tac my_poem.txt

И датотека је наведена у прозору терминала обрнутим редоследом. У овом случају, то нема никаквог утицаја на његове књижевне заслуге.

Коришћење тац Са стдин

Коришћење тац-а без назива датотеке ће довести до тога да он ради на уносу са тастатуре. Притиском на Цтрл+Д зауставиће се фаза уноса, а тац ће навести обрнутим редоследом шта год сте унели.

tac

Када се притисне Цтрл+Д, унос се обрће и приказује у прозору терминала.

Коришћење тац са датотекама евиденције

Осим лоших салонских трикова, може ли тац учинити нешто корисно? Да, може. Многе датотеке евиденције додају своје најновије уносе на дно датотеке. Користећи тац (и, супротно интуитивно, главу) можемо да убацимо последњи унос у прозор терминала.

Користимо тац да наведемо датотеку сислог у обрнутом смеру и преведемо је у главу. Када кажете глави да штампа само први ред који прими (што је захваљујући тац последњи ред у датотеци), видимо најновији унос у сислог датотеци.

tac /var/log/syslog | head -1

хеад штампа најновији унос из сислог датотеке и затим излази.

Имајте на уму да глава штампа само једну линију — као што смо тражили — али линија је толико дуга да се двапут премотава. Зато изгледа као три линије излаза у прозору терминала.

Коришћење тац-а са текстуалним записима

Последњи трик који има у рукаву је лепота.

Обично, тац ради на текстуалним датотекама тако што пролази кроз њих ред по ред, одоздо према горе. Ред је низ знакова који се завршава знаком новог реда. Али можемо рећи да тац ради са другим граничницима. Ово нам омогућава да третирамо „комадове“ података унутар текстуалне датотеке као записе података.

Рецимо да имамо датотеку евиденције из неког програма коју треба да прегледамо или анализирамо. Хајде да погледамо његов формат са мање.

less logfile.dat

Као што видимо, постоји формат који се понавља. Постоје секвенце од три реда хексадецимални вредности. Сваки скуп од три хексадецималне линије има линију ознаке која почиње „=СЕК“, праћена низом цифара.

  Како инсталирати ЛКСКт на Линук

Ако скролујемо до дна датотеке, можемо видети да има много ових записа. Последњи је под бројем 865.

Претпоставимо да из било ког разлога треба да радимо кроз ову датотеку обрнутим редоследом, запис података по запис података. Редослед три хексадецимална реда у сваком запису података мора бити сачуван.

Приметићемо да последња три реда у датотеци почињу хексадецималним вредностима 93, Е7 и Б8, тим редоследом.

Хајде да користимо тац да преокренемо датотеку. То је веома дугачак фајл, па ћемо га пребацити у мање.

tac logfile.dat | less

То обрће датотеку, али то није резултат који желимо. Желимо да се датотека обрне, али редови у сваком запису података морају бити у оригиналном редоследу.

Раније смо забележили да последња три реда у датотеци почињу хексадецималним вредностима 93, Е7 и Б8, тим редоследом. Редослед тих линија је обрнут. Такође, линије „=СЕК“ су сада испод сваког скупа од три хексадецималне линије.

тац у помоћ.

tac -b -r -s ^=SEQ.+[0-9]+*$ logfile.dat | less

Хајде да то разбијемо.

Опција -с (сепаратор) обавештава тац шта желимо да користимо као граничник између наших записа. Каже тац-у да не користи свој уобичајени знак новог реда, већ да уместо тога користи наш сепаратор.

Опција -р (регек) говори тац-у да третира стринг сепаратора као а регуларни израз.

Опција -б (пре) доводи до тога да тац наведе сепаратор пре сваког записа уместо после њега (што је уобичајена позиција његовог подразумеваног сепаратора, знака новог реда).

-с (сепаратор) стринг ^=СЕК.+[0-9]+*$ се дешифрује на следећи начин:

Знак ^ представља почетак реда. Ово је праћено =СЕК.+[0-9]+*$. Ово налаже такту да тражи свако појављивање „=СЕК“. на почетку реда, након чега следи било који низ цифара (означен са [0-9]), а затим следи било који други скуп знакова (означен са *$).

Све то стављамо у мање, као и обично.

Наш фајл је сада представљен обрнутим редоследом са сваким редом ознаке „=СЕК“ који је наведен испред три реда хексадецималних података. Три реда хексадецималних вредности су у свом оригиналном редоследу унутар сваког записа података.

Ово можемо једноставно проверити. Прва вредност прва три реда хексадецимала (које су била последња три реда пре него што је датотека обрнута) одговара вредностима које смо раније забележили: 93, Е7 и Б8, тим редоследом.

То је прави трик за једнолинер терминалског прозора.

Све има сврху

У свету Линук-а, чак и наизглед најједноставније команде и услужни програми могу имати изненађујућа и моћна својства.

Филозофија дизајна једноставних услужних програма који добро раде једну ствар, и који лако сарађује са другим услужним програмима, довео је до неких чудних малих команди, као што је тац. На први поглед, изгледа да је помало чудно. Али када завирите испод површине, постоји неочекивана моћ коју можете искористити у своју корист.

Или, како каже друга филозофија: „Не презири змију зато што нема рогове, јер ко ће рећи да неће постати змај?“