Познавање основа наредбе „авк“ је веома важно када је у питању ефикасна обрада података, а овај чланак покрива кључне карактеристике наредбе „авк“. Прво проверимо синтаксу:
$ авк [опције] [датотека]Неке од најчешће коришћених опција дате су у доњој табели:
Опција | Опис |
-Ф | Да одредите сепаратор датотека |
-ф | Наведите датотеку која садржи скрипту „авк“ |
-в | Да доделите променљиву |
Погледајмо неколико примера употребе команде „авк“, а за демонстрацију сам направио текстуалну датотеку под именом тестФиле.ткт:
1. Како се штампа колона датотеке помоћу команде авк?
Команда „авк“ се може користити за добијање одређене колоне текстуалне датотеке. Да бисте одштампали садржај датотеке, користите:
$ мачка тестФиле.ткт
Сада, да бисте одштампали другу колону датотеке, користите:
$ авк 'принт $ 2' тестФиле.ткт
Да бисте одштампали више поља, користите наредбу:
$ авк 'принт $ 1, $ 2, $ 3' тестФиле.ткт
Ако не користите зарез „,“, излаз ће бити без размака:
$ авк 'принт $ 1 $ 2 $ 3' тестФиле.ткт
2. Како се користи регуларни израз са командом авк:
Да бисмо подударали низове или било који израз, користимо косе црте „//“, на пример, ако желите да одштампате имена људи који проучавају „Историју“, онда користите:
$ авк '/ Историја / испис $ 2' тестФиле.ткт
Резултат јасно показује да само „Сам“ и „Томми“ уче курс „Историја“.
3. Како се користи релациони израз са наредбом „авк“:
Да би се подударао са садржајем одређеног поља, може се користити релациони израз. Да бисте подударали било који низ или израз са пољем, назначите поље и користите оператер поређења „~“ са узорком како је представљено у следећој наредби:
$ авк '$ 3 ~ / ис / принт $ 2' тестФиле.ткт
Горњи излаз приказује свако поље у колони 2 у односу на свако поље које садржи „је“ у колони 3.
А да бисте добили супротни излаз горе наведене наредбе, користите „! ~ ”Оператор:
$ авк '$ 3! ~ / ис / принт $ 2 'тестФиле.ткт
За поређење, можемо користити и операторе веће од „>“ и мање од „<” and equal “=” as well:
$ авк '$ 4> 70 принт $ 2' тестФиле.ткт
У издању су исписана имена људи који су добили оцене више од 70.
4. Како се користи образац опсега са командом авк:
Распон се такође може користити за претрагу; једноставно користите зарез „,“ да одвојите опсег као што је приказано у доле наведеној команди:
$ авк '/ Јоел /, / Марлене / принт $ 3' тестФиле.ткт
Излаз приказује субјекте у распону од „Јоел“ до „Марлене“ из колоне 2. Знак двоструке једнакости „==“ можемо користити за дефинисање опсега; погледајте пример испод:
$ авк '$ 4 == 80, $ 4 == 90 принт $ 0' тестФиле.ткт
Излаз приказује имена људи из колоне 2 за опсег ознака „70 до 80“ из колоне 4.
5. Како комбиновати образац помоћу логичког оператора:
Употреба логичких оператора као што је ИЛИ „||,“ И „&&“ омогућава вам комбиновање образаца за претрагу. Користите следећу команду
$ авк '$ 4> 80 && $ 6> 0.4 принт $ 2 'тестФиле.ткт
Горња команда штампа имена људи на четвртом пољу значајнијем од 80 и шестом пољу већем од 0.4. И само два записа испуњавају услов.
6. Посебни изрази наредбе авк:
Постоје два посебна израза, „ПОЧЕТИ" и "КРАЈ”:
ПОЧЕТАК: Да бисте извршили радњу пре обраде података
КРАЈ: Да бисте извршили радњу након обраде података
$ авк 'БЕГИН принт «Обрада је започета»; принт $ 2; ЕНД принт «Обрада је завршена» 'тестФиле.ткт
7. Корисна уграђена променљива команде авк:
Наредба авк има разне варијабле које помажу у обради података:
Променљива | Опис |
НФ | Даје број поља у подацима |
НР | Даје број тренутног записа |
НАЗИВ ДОКУМЕНТА | Приказује име датотеке која се тренутно обрађује |
ФС и ОФС | Сепаратор поља и излазни Сепаратор поља |
РС и ОРС | Одваја сепаратор записа и излазног записа |
На пример:
$ авк 'ЕНД испис „Име датотеке је„ ФИЛЕНАМЕ “има„ НФ “поља и„ НР „записе“' тестФиле.ткт
Користимо „ЕНД“, али ако користите „БЕГИН“, излаз ће дати 0 поља и 0 записа.
8. Како променити сепаратор записа:
Подразумевани сепаратор у запису обично је размак; ако постоји зарез „,“ или тачка „.“Као сепаратор поља, а затим користите опцију„ ФС “заједно са сепаратором.
Имајмо још једну датотеку у којој су поља података одвојена зарезом двотачке „:“:
$ цат тестФиле2.ткт$ авк 'БЕГИН ФС = “:” принт $ 2' тестФиле2.ткт
С обзиром да је сепаратор датотеке двотачка, али наредба „авк“ чак и корисна за овакве датотеке, једноставно користите опцију „ФС“.
Такође се може користити „-Ф“:
$ авк -Ф “:” 'принт $ 2' тестФиле2.ткт
Подразумевани сепаратор записа је „нова линија“, а да бисте поставили сепаратор записа на „:“, користите:
$ авк 'БЕГИН РС = “:” принт $ 1' тестФиле2.ткт
9. Авк акције:
Авк акције су мали програми који су окружени заградама „“ и имају више од једне изјаве одвојене тачком и зарезом „;“.
Најчешће коришћена изјава са наредбом „авк“ је изјава „испис“. На пример, за штампање текста уз сваки запис, користите текстуални низ у наводницима:
$ авк '"Тхе ис тхе фиелд," $ 2' тестфиле.ткт
Изведимо једноставну операцију сабирања користећи авк:
$ авк 'сум + = $ 4 ЕНД принтф “% д \ н”, сум' тестФиле.ткт
10. Креирање авк програма:
Почнимо са „авк“ програмирањем, програм дат у наставку једноставно множи:
ПОЧЕТИи = 2
док (ј<4)
исписати „Множење 2 са„ ј “је„ и * ј;
ј++
Сачувајте програм под називом „миЦоде.авк”И да бисте га покренули, отворите терминал и укуцајте:
$ авк -ф миЦоде.авкЗакључак:
Команда „авк“ је корисна наредба за обраду, скенирање података текстуалних датотека, као што је одвајање било ког одређеног поља датотеке; користимо команду „авк“. Олакшава претраживање било чега у било ком облику или обрасцу из текстуалних датотека. У овом водичу разумемо основе наредбе „авк“ и њену употребу. Команда „авк“ потврђује податке, генерише извештаје, па чак и рашчлањује датотеке. Коришћење једноставних команди „авк“ такође омогућава корисницима да напишу мале програме за ефикаснију обраду података.