Авк

Како поделити датотеку жица помоћу Авк-а

Како поделити датотеку жица помоћу Авк-а
Команда Линук авк (скраћено од имена програмера; Ахо, Веинбергер и Кернигхан) је одличан начин за обраду и анализу датотеке низова. Да би датотеке биле информативније, морају бити организоване у облику редова и колона. Затим можете користити авк на овим датотекама да бисте:

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

Пример датотеке коју ћемо користити

Пример датотеке низова који ћемо користити да бисмо демонстрирали употребу наредбе авк је следећи:

На то указује свака колона датотеке узорка:

Пример 1: Користите Авк за штампање свих редова датотеке

Штампање сваког реда одређене датотеке је подразумевано понашање наредбе авк. У следећој синтакси наредбе авк не специфицирамо ниједан образац који би авк требао исписати, па би наредба требала примијенити акцију „испис“ на све редове датотеке.

Синтакса:

$ авк 'принт' назив датотеке.ткт

Пример:

У овом примеру кажем наредби авк да штампа садржај моје датотеке узорка, ред по ред.

$ авк 'принт' сампле_филе.ткт

Пример 2: Употријебите авк за испис само линија које одговарају датом узорку

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

Синтакса:

$ авк '/ паттерн_то_бе_матцхед / принт' назив датотеке.ткт

Пример:

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

$ авк '/ Б / принт' сампле_филе.ткт

Да пример буде смисленији, дозволите ми да одштампам само податке о запосленима који су „професорски“.

$ авк '/ профессор / принт' сампле_филе.ткт

Команда штампа само редове / уносе који садрже низ „професор“, тако да имамо драгоценије информације изведене из података.

Пример 3. Употријебите авк да подијелите датотеку тако да се исписују само одређена поља / колоне

Уместо да исписујете целу датотеку, можете да направите авк да одштампате само одређене колоне датотеке. Авк подразумевано третира све речи одвојене размаком у реду као запис колоне. Складишти запис у променљиву од $ Н. Тамо где $ 1 представља прву реч, $ 2 чува другу реч, $ 3 четврту и тако даље. $ 0 чува целу линију тако да се штампа шта је ред, како је објашњено у примеру 1.

Синтакса:

$ авк 'принт $ Н,… .' назив документа.ткт

Пример:

Следећа команда ће исписати само прву колону (име) и другу колону (предмет) моје датотеке узорка:

$ авк 'принт $ 1, $ 2' сампле_филе.ткт

Пример 4: Користите Авк за бројање и испис броја редова у којима се подудара образац

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

Синтакса:

$ авк '/ паттерн_то_бе_матцхед / ++ цнт ЕНД принт "Цоунт =", цнт'
назив документа.ткт

Пример:

У овом примеру желим да избројим број особа које предају предмет „енглески“. Стога ћу рећи команди авк да се подудара са узорком „енглески“ и исписати број линија у којима се овај образац подудара.

$ авк '/ енглески / ++ цнт ЕНД принт "Цоунт =", цнт' сампле_филе.ткт

Бројање овде сугерише да 2 особе предају енглески језик из узорака евиденције датотека.

Пример 5: Употријебите авк за испис само редова са више од одређеног броја знакова

За овај задатак користићемо уграђену функцију авк која се назива „дужина“. Ова функција враћа дужину улазног низа. Стога, ако желимо да авк штампа само редове са бројем знакова већим или чак мањим од броја, можемо користити функцију дужине на следећи начин:

За штампање линија са знаковима већим од броја:

$ авк 'ленгтх ($ 0)> н' име датотеке.ткт

За штампање линија са знаковима мањим од броја:

$ авк 'дужина ($ 0) < n' filename.txt

Где је н број знакова које желите да одредите за линију.

Пример:

Следећа наредба ће исписати само редове из моје датотеке узорка који имају знакове веће од 30:

$ авк 'ленгтх ($ 0)> 30' сампле_филе.ткт

Пример 6: Употријебите авк за спремање резултата наредбе у другу датотеку

Коришћењем оператора преусмеравања '>', можете користити команду авк да бисте исписали његов излаз у другу датотеку. Ово је начин на који га можете користити:

$ авк 'цритериа_то_принт "назив датотеке.ткт> оутпутфиле.ткт

Пример:

У овом примеру, користићу оператер преусмеравања са својом командом авк за испис само имена запослених (колона 1) у нову датотеку:

$ авк 'принт $ 1' сампле_филе.ткт> имена_запослених.ткт

Преко мачјих команди сам проверио да нова датотека садржи само имена запослених.

Пример 7: Употријебите авк за испис само непразних линија из датотеке

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

$ авк 'НФ> 0' сампле_филе.ткт

Очигледно је да можете користити следећу наредбу за испис празних редова:

$ авк 'НФ < 0' sample_file.txt

Пример 8: Употријебите авк за бројање укупних редова у датотеци

Друга уграђена функција која се зове НР води бројање броја улазних записа (обично линија) дате датотеке. Ову функцију у авк можете користити на следећи начин за бројање броја редова у датотеци:

$ авк 'ЕНД принт НР' сампле_филе.ткт

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

Додајте покрете миша у Виндовс 10 помоћу ових бесплатних алата
Последњих година рачунари и оперативни системи су се увелико развили. Било је време када су корисници морали да користе команде за навигацију кроз мен...
Контролишите и управљајте кретањем миша између више монитора у оперативном систему Виндовс 10
Двоструки приказ миша омогућава вам контролу и конфигурисање кретања миша између више монитора, успоравајући његово кретање близу границе. Виндовс 10/...
ВинМоусе вам омогућава да прилагодите и побољшате кретање показивача миша на Виндовс рачунару
Ако желите да побољшате подразумеване функције показивача миша, користите бесплатни програм ВинМоусе. Додаје још функција које ће вам помоћи да на нај...