Линук наредбе

Басх Тац команда

Басх Тац команда
Тац је једна од оних команди коју не схватате док то већ нисте урадили, поново измислили точак, што није ретко у пракси програмирања без обзира да ли само учите конопе или сте професионалац са дугогодишњим искуством хвалите се, сјајни сте. Ако су вам руке чисте, онда добро за вас; У сваком случају, очекује вас посластица, искрцаћу све што знам о команди тац и још много тога. Прочитајте на.

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

Додуше, такта има више него што се чини на први поглед. Не брини. Све ћемо покрити, благовремено.

Савети за так

Користити или не користити, то је питање. Нећете, не желите да тапкате кад не морате. Међутим, ако желите да ширите таксе као наредбу за хлеб и путер, то је на вама. У међувремену, ево мог савета о прихватању обе стране да остану неутралне.

Када користити тац

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

Када нисте сигурни у могућности лхс-а

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

Када перформансе нису битне

Иако безначајне, већина наредби које се користе заједно са уграђеном опцијом за преокретање излаза имају бољи учинак од слања излаза у тац. Дакле, ако мало кашњење перформанси није проблем, убацивање у тац за поновну репродукцију у обрнутом реду је у реду.

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

Постоје тренуци када можда не користите тац јер знате боље. Ево неколико напомена.

Када знате да команда на лхс има опцију за обртање излазних линија

Као што сам рекао, „Већина наредби долази са опцијом за обрнути излаз.”Ако знате да одређена лхс наредба има опцију, не можете користити тац. На крају крајева, -р је краћи од - | тац.

Када су перформансе битне

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

Тац помоћ

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

Команде

так - помоћ

Оутпут

Тац верзија

Која сам верзија?
Ви сте најновија верзија себе. Међутим, у случају које верзије је ваш тац, постоји опција за то.

Команде

тац --верзија

Оутпут

Напомене

Ако користите тац на ФрееБСД или мацОС, дуга опција за верзију можда неће бити доступна. У том случају покушајте са -в или ман тац. Ако сте пробали, обавестите ме. ја сам знатижељан. Хвала

Тац опције

Поред помоћи и верзије, тац нема много опција. За оно што има, сигурно ћете сазнати да тац није било која стара обрнута мачка.

Тац бефоре оптион

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

Знам да је збуњујуће. Разложимо то на примеру.

Прво, да видимо како изгледа наш излаз пре употребе тац -б.

Команде

сек 10

Оутпут

Сада да видимо у шта се претвара наш излаз након употребе тац без -б.

Команде

сек 10 | тац

Оутпут

Сада да видимо у шта се излаз претвара коришћењем тац -б.

Команде

сек 10 | тац -б

Оутпут

Тац сепаратор опција

Опција раздвајања -с 'дословни низ' омогућава вам да одредите карактер или секвенцу знакова које тац користи да би раздвојио линије. Подразумевано се користи знак новог реда ('0а' у хексадецималном облику).

Како се користи опција раздвајања таца, у почетку није очигледно. Међутим, кад једном сазнате да је ту, тешко је не покушати га користити.

Размотрите следећи пример, оперишући на линијама представљеним у хек-у.

Команде

сек 20 | ккд -пс | тац -с '0а' | ккд -пс -р

Оутпут

Напомене

(1) Могло би изгледати тривијално као коришћење наредбе 20 | тац наредба, међутим, у том случају нисмо трошили време радећи на излазном току у хек-у. Коришћење овог обрасца корисно је када одвојено није нешто тривијално као знак нове линије, као што је нулти бајт.

Сада мање покушавајте да користите тац за нешто мало мање сирово и више мета попут једноставног ХТМЛ-а.

Размотрите следећу датотеку.

Филе

А
Б
Ц

Команде

датотека () ецхо -е "А
Б
Ц
";
датотека | так-с "
"

Оутпут

Успели смо да конвертујемо ХТМЛ страницу

А
Б
Ц

у

Ц
Б
А

користећи тац.

Претпоставимо да треба да урадите нешто мало компликованије, као што је да било коју ознаку третирате као сепаратор таца. У том случају се нећете извући само употребом опције раздвајања. Ту долази опција регуларног израза. У комбинацији са опцијом раздвајача омогућава вам да помоћу команде тац учините више него да обрнете линију у датотеци. Ево како.

Тац регек опција

Опција регуларног израза -р -с 'регек' омогућава вам да одредите да се низ раздвајача третира као регуларни израз.

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

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

Филе



једноставне функције


Функције су једноставне у басх-у. Бар овај јесте. Ставља низ на екран.


Команде


једноставна функција
()
одјек
што једноставније постаје једноставна функција

Извор: хттпс: // темптемп3.гитхуб.ио / басх-функције

Команде

датотека ()

одјек '



једноставне функције

Функције су једноставне у басх-у. Бар овај јесте. То ставља а
низ на екрану.

Команде



једноставна функција

(
)

одјек што једноставније постаје

једноставна функција
'

датотека | тац -р -с "] *."

Оутпут

Успели смо да конвертујемо ХТМЛ страницу обрнувши датотеку помоћу ХТМЛ тагова. Ако погледате детаље, приметићете да то још увек није савршено.

Тац команда у чистом басху

Ево примитивне верзије тац имплементације у пуре басх која преокреће линије унесене наредбом лхс. Будуће верзије су остављене као вежба.

#!/ бин / басх
## тац
## верзија 0.0.1 - почетно
####################################################
тац ()
локални -а дол
локални -и и
мапфиле арр -
и = "$ # арр [@]"
док [$ и -ге 0]
урадите
ецхо $ арр [и]
нека је и- = 1
Готово

####################################################
тац
####################################################

Извор: хттпс: // гитхуб.цом / темптемп3 / ба.сх / блоб / мастер / так.сх

Тац команда користећи друге команде

Ево неколико примитивних верзија имплементације тац-а користећи друге наредбе које преокрећу линије унесене наредбом лхс. Будуће верзије су остављене као вежба.

Пре него што започнемо, затворите очи и размислите: „Шта би се могло употребити за примену примитивне верзије такса?”
Многе заповести ми падају на памет, али фокусираћу се на оне за које имамо места.

гавк

Слично наредби Тац у примеру чистог басха, да бисмо применили тац, прво бисмо спремили прочитане редове да би се репродуковали обрнуто након што се прочитају све линије. Ево како би то изгледало користећи гавк.

 гавк 'линија [++ линија [0]] = $ (0) ЕНД за (и = 0; и

Сада покушајте да користите команду лхс сек 10.

 сек 10 | гавк 'линија [++ линија [0]] = $ (0) ЕНД за (и = 0; и

Као што бисте очекивали, излаз је

Вежбе

1. Функција лхс () сек 10; наводи целе бројеве од 1 до 10. Напишите рхс наредбу такву да је лхс | рхс је једнако 10864213579 само користећи тац (Савет: погледајте Тац пре примера опције)
2. Обрнути излаз рхс () финд -миндептх 1 -макдептх 1 -принт0; користећи тац (Савет: погледајте пример опције раздвајања таца)
3. Продужите тац.сх (у команди Тац у чистом басху) да се понаша тачно као тац. Мораћете да додате опције и обавезно тестирате њихово понашање.
4. Применити примитивну верзију тац у пуре басх као рекурзивну функцију.

ТЛ; ДР

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

Како инсталирати и играти Доом на Линук-у
Увод у Доом Доом серија настала је 90-их година након објављивања оригиналног Доом-а. То је био тренутни хит и од тог времена надаље серија игара је д...
Вулкан за кориснике Линука
Са сваком новом генерацијом графичких картица видимо да програмери игара помичу границе графичке верности и долазе на корак од фотореализма. Али упрко...
ОпенТТД вс Симутранс
Стварање сопствене симулације превоза може бити забавно, опуштајуће и изузетно примамљиво. Због тога морате да испробате што више игара како бисте про...