Авк

20 авк примера

20 авк примера

20 авк примера

У оперативном систему Линук постоје многи услужни алати за претрагу и генерисање извештаја из текстуалних података или датотеке. Корисник може лако да изврши многе врсте претраживања, замене и генерисања задатака помоћу команди авк, греп и сед. авк није само наредба. То је скриптни језик који се може користити и из терминала и из авк датотеке. Подржава променљиву, условни израз, низ, петље итд. попут осталих скриптних језика. Може читати било који садржај датотеке ред по ред и одвајати поља или колоне на основу одређеног граничника. Такође подржава регуларни израз за претрагу одређеног низа у текстуалном садржају или датотеци и предузима радње ако се пронађе било које подударање. Како можете користити авк команду и скрипту, приказано је у овом упутству користећи 20 корисних примера.

Садржај:

  1. авк са принтф
  2. авк да се подели на бели простор
  3. авк за промену граничника
  4. авк са подацима раздвојеним картицама
  5. авк са ЦСВ подацима
  6. авк регек
  7. регуларни израз осетљив на велика и мала слова
  8. авк са променљивом нф (број поља)
  9. авк генсуб () функција
  10. авк са функцијом ранд ()
  11. авк кориснички дефинисана функција
  12. авк иф
  13. авк променљиве
  14. авк низови
  15. авк лооп
  16. авк за испис прве колоне
  17. авк за штампање последње колоне
  18. авк са греп
  19. авк са басх датотеком скрипте
  20. авк са сед

Коришћење авк-а са принтф-ом

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

запослени.ткт

1001 Јован Сена 40000
1002 Џафар Икбал 60000
1003 Мехер Нигар 30000
1004 Јонни Ливер 70000

Следећа команда авк ће читати податке из запослени.ткт датотека ред по ред и одштампајте прву датотеку након форматирања. Овде, “% 10с \ н”Значи да ће излаз имати 10 знакова. Ако је вредност излаза мања од 10 знакова, размаци ће се додати испред вредности.

$ авк 'принтф "% 10с \ н", $ 1' запослени.ткт

Излаз:

Идите на Садржај

авк да се подели на бели простор

Подразумевани сепаратор речи или поља за раздвајање било ког текста је размак. Наредба авк може узимати вриједност текста као улаз на разне начине. Улазни текст је прослеђен из одјек наредба у следећем примеру. Текст, 'Волим програмирање'поделиће се подразумеваним сепаратором, свемир, а трећа реч ће се одштампати као излаз.

$ ецхо 'Волим програмирање' | авк 'принт $ 3'

Излаз:

Идите на Садржај

авк за промену граничника

Наредба авк се може користити за промјену граничника за било који садржај датотеке. Претпоставимо да имате текстуалну датотеку са именом телефон.ткт са следећим садржајем где се ':' користи као сепаратор поља садржаја датотеке.

телефон.ткт

+123: 334: 889: 778
+880: 1855: 456: 907
+9: 7777: 38644: 808

Покрените следећу авк наредбу да бисте променили граничник, ':' од стране '-' на садржај датотеке, телефон.ткт.

$ мачка телефон.ткт
$ авк '$ 1 = $ 1' ФС = ":" ОФС = "-" телефон.ткт

Излаз:

Идите на Садржај

авк са подацима раздвојеним картицама

команда авк има много уграђених променљивих које се користе за читање текста на различите начине. Двоје њих јесу ФС и ОФС. ФС је сепаратор поља за унос и ОФС је променљива сепаратора поља излаза. Употреба ових променљивих приказана је у овом одељку. Створити таб одвојена датотека са именом улазни.ткт са следећим садржајем за тестирање употребе ФС и ОФС Променљиве.

Улазни.ткт

Клијентски скриптни језик
Језик скриптирања на страни сервера
Сервер базе података
Веб сервер

Коришћење променљиве ФС са језичком

Следећа команда раздвојиће сваки ред од улазни.ткт датотеку на основу картице ('\ т') и испишите прво поље сваког реда.

$ авк 'принт $ 1' ФС = '\ т' унос.ткт

Излаз:

Коришћење променљиве ОФС са картицом

Следећа команда авк ће исписати 9тх и 5тх поља од 'лс -л' излаз наредбе са сепаратором картица након исписа наслова колоне “Име" и "Величина”. Ево, ОФС променљива се користи за форматирање излаза помоћу картице.

$ лс -л
$ лс -л | авк -в ОФС = '\ т' 'ПОЧИНИТЕ принтф "% с \ т% с \ н", "Име", "Величина" принт $ 9, $ 5'

Излаз:

Идите на Садржај

авк са ЦСВ подацима

Садржај било које ЦСВ датотеке може се рашчланити на више начина помоћу команде авк. Направите ЦСВ датотеку под називом 'купац.цсв'Са следећим садржајем за примену команде авк.

купац.ткт

Ид, име, е-маил, телефон
1, Сопхиа, [заштићена е-поштом], (862) 478-7263
2, Амелиа, [заштићена е-поштом], (530) 764-8000
3, Емма, [заштићена е-поштом], (542) 986-2390

Читање једног поља ЦСВ датотеке

'-Ф' опција се користи са наредбом авк за постављање граничника за раздвајање сваког ретка датотеке. Следећа авк наредба ће исписати име поље муштерија.цсв датотека.

$ мачка муштерија.цсв
$ авк -Ф "," 'принт $ 2' купац.цсв

Излаз:

Читање више поља комбиновањем са другим текстом

Следећа команда ће исписати три поља купац.цсв комбиновањем текста наслова, Име, е-пошта и телефон. Први ред купац.цсв датотека садржи наслов сваког поља. НР променљива садржи редни број датотеке када авк наредба рашчлани датотеку. У овом примеру, тхе НР променљива се користи за изостављање првог реда датотеке. Излаз ће приказати 2нд, 3рд и 4тх поља свих редова осим првог реда.

$ авк -Ф "," 'НР> 1 принт "Име:" $ 2 ", Е-пошта:" $ 3 ", Телефон:" $ 4' купац.цсв

Излаз:

Читање ЦСВ датотеке помоћу авк скрипте

скрипта авк може се извршити покретањем датотеке авк. Како можете створити авк датотеку и покренути датотеку, приказано је у овом примеру. Направите датотеку са именом авкцсв.авк са следећим кодом. ПОЧЕТИ Кључна реч се користи у скрипти за обавештавање команде авк да изврши скрипту ПОЧЕТИ део пре извршења других задатака. Овде, сепаратор поља (ФС) користи се за дефинисање граничника за раздвајање и 2нд и 1ст поља ће се штампати у складу са форматом који се користи у функцији принтф ().

авкцсв.авк
ПОЧНИТЕ ФС = "," принтф "% 5с (% с) \ н", $ 2, $ 1

Трцати авкцсв.авк датотека са садржајем муштерија.цсв датотеку следећом наредбом.

$ авк -ф авкцсв.авк купац.цсв

Излаз:

Идите на Садржај

авк регек

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

Подударни скуп знакова

Следећа команда ће се подударати са речју Будала или боол или Хладан са улазним низом и исписати ако је реч пронађена. Ево, Долл неће се подударати и неће штампати.

$ принтф "Фоол \ нЦоол \ нЛутка \ нбоол" | авк '/ [ФбЦ] оол /'

Излаз:

Претраживање низа на почетку реда

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

$ ецхо -е "Линук је бесплатан за употребу \ н То је софтвер отвореног кода \ нЛинукХинт је
популарна веб локација на блогу "| авк '/ ^ Линук /'

Излаз:

Претраживање низа на крају реда

'$' симбол се користи у регуларном изразу за претрагу било ког узорка на крају сваког реда текста. 'Скрипта'реч се претражује у следећем примеру. Овде два реда садрже реч, Скрипта на крају реда.

$ ецхо -е "ПХП скрипта \ нЈаваСцрипт \ нВизуално програмирање" | авк '/ скрипта $ /'

Излаз:

Претраживање изостављањем одређеног скупа знакова

'^' симбол означава почетак текста када се користи испред било ког узорка низа ('/ ^… /') или пре било ког скупа знакова који је декларисао ^ […]. Ако је '^' симбол се користи унутар треће заграде, [^ ...], тада ће дефинисани скуп знакова унутар заграде бити изостављен у тренутку претраживања. Следећа команда ће претражити било коју реч која не започиње 'Ф' али се завршава са 'оол'. Хладан и боол биће штампани према обрасцу и текстуалним подацима.

$ принтф "Фоол \ нЦоол \ нЛутка \ нбоол" | авк '/ [^ Ф] оол /'

Излаз:

Идите на Садржај

регуларни израз осетљив на велика и мала слова

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

$ ецхо -е "Веб дизајн \ нразвој веб \ нОквир" | авк 'толовер ($ 0) ~ / ^ веб /;'

Излаз:

Идите на Садржај

авк са променљивом НФ (број поља)

НФ је уграђена променљива команде авк која се користи за бројање укупног броја поља у сваком реду улазног текста. Направите било коју текстуалну датотеку са више редова и више речи. улаз.ткт овде се користи датотека која је креирана у претходном примеру.

Коришћење НФ-а из командне линије

Овде се прва наредба користи за приказ садржаја улазни.ткт датотека и друга наредба се користи за приказ укупног броја поља у сваком реду датотеке која користи НФ променљива.

$ цат инпут.ткт
$ авк 'принт НФ' улаз.ткт

Излаз:

Коришћење НФ-а у авк датотеци

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

рачунати.авк

принт $ 0
принт "[Укупно поља:" НФ "]"

Покрените скрипту следећом наредбом.

$ авк -ф цоунт.авк инпут.ткт

Излаз:

Идите на Садржај

авк генсуб () функција

гетсуб () је функција замене која се користи за претрагу низа на основу одређеног граничника или обрасца регуларног израза. Ова функција је дефинисана у  'гавк' пакет који није подразумевано инсталиран. Синтакса ове функције дата је у наставку. Први параметар садржи образац регуларног израза или граничник претраживања, Други параметар садржи заменски текст, трећи параметар означава како ће се вршити претрага, а последњи параметар садржи текст у коме ће се применити ова функција.

Синтакса:

генсуб (регуларни израз, замена, како [, циљ])

Покрените следећу команду да бисте инсталирали гавк пакет за употребу гетсуб () функција са командом авк.

$ судо апт-гет инсталл гавк

Направите текстуалну датотеку под називом 'продајне информације.ткт'са следећим садржајем за увежбавање овог примера. Овде су поља одвојена језичком.

продајне информације.ткт

Пон 700000
Уторак 800000
Сре 750000
Чет 200000
Пет 430000
Суб 820000

Покрените следећу наредбу да бисте прочитали нумеричка поља датотеке продајне информације.ткт архивирајте и одштампајте укупан износ свих продаја. Овде трећи параметар, 'Г' означава глобалну претрагу. То значи да ће се образац претраживати у пуном садржају датотеке.

$ авк 'к = генсуб ("\ т", "", "Г", $ 2); принтф к "+" ЕНД принт 0 'продајне информације.ткт | бц -л

Излаз:

Идите на Садржај

авк са функцијом ранд ()

ранд () функција се користи за генерисање било ког случајног броја већег од 0 и мањег од 1. Дакле, увек ће генерисати делићни број мањи од 1. Следећа команда ће генерисати разломак случајног броја и помножити вредност са 10 да би се добио број већи од 1. За примену функције принтф () исписат ће се разломак са две цифре након децималне тачке. Ако следећу наредбу покренете више пута, сваки пут ћете добити другачији излаз.

$ авк 'БЕГИН принтф "Број је =%.2ф \ н ", ранд () * 10 '

Излаз:

Идите на Садржај

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

Све функције које су коришћене у претходним примерима су уграђене функције. Али у својој авк скрипти можете прогласити кориснички дефинисану функцију за обављање било ког задатка.  Претпоставимо да желите да креирате прилагођену функцију за израчунавање површине правоугаоника. Да бисте извршили овај задатак, креирајте датотеку под називом 'подручје.авк'са следећом скриптом. У овом примеру, кориснички дефинисана функција именована површина () је декларисан у скрипти која израчунава површину на основу улазних параметара и враћа вредност површине. гетлине Овде се користи наредба за преузимање података од корисника.

подручје.авк

# Израчунај површину
област функције (висина, ширина)
повратна висина * ширина

# Покреће извршење
ПОЧЕТИ
принт "Унесите вредност висине:"
гетлине х < "-"
принт "Унесите вредност ширине:"
гетлине в < "-"
испис "Ареа ​​=" ареа (х, в)

Покрените скрипту.

$ авк -ф подручје.авк

Излаз:

Идите на Садржај

авк ако пример

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

предмета.ткт

ХДД Самсунг 100 долара
Миш А4Тецх
Штампач ХП 200 долара

Једноставно ако је пример:

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

$ авк 'иф ($ 3 == "") принт "Поље цене недостаје у ставкама„ НР ".ткт

Излаз:

пример ако-друго:

Следећа наредба ће исписати цену артикла ако 3рд поље постоји у линији, иначе ће исписати поруку о грешци.

$ авк 'иф ($ 3 == "") принт "Поље цене недостаје"
иначе исписати "цена предмета је" $ 3 'предмета.ткт

Излаз:

пример иф-елсе-иф:

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

$ авк 'БЕГИН принт "Унеси ознаку:"
ознака гетлине <  "-"
иф (марк> = 90) исписати "А +"
иначе ако (ознака> = 80) исписује "А"
иначе ако (ознака> = 70) исписује "Б +"
елсе принт "Фаил" '

Излаз:

Идите на Садржај

авк променљиве

Декларација променљиве авк је слична декларацији променљиве љуске. Постоји разлика у очитавању вредности променљиве. Симбол '$' користи се са именом променљиве за променљиву љуске за читање вредности. Али нема потребе да користите '$' са променљивом авк за читање вредности.

Коришћење једноставне променљиве:

Следећа наредба ће прогласити променљиву именовану 'сајт' а тој променљивој додељује се вредност низа. Вредност променљиве исписује се у следећем изразу.

$ авк 'БЕГИН сите = "ЛинукХинт.цом "; локација за испис '

Излаз:

Коришћење променљиве за преузимање података из датотеке

Следећа команда ће претражити реч 'Штампач' у досијеу предмета.ткт. Ако било који ред датотеке почиње са 'Штампач'тада ће сачувати вредност 1ст, 2нд и 3рд поља у три променљиве. име и Цена променљиве ће се штампати.

$ авк '/ Штампач / наме = $ 1; бранд = $ 2; прице = $ 3; принт "итем наме =" наме;
исписати "итем прице =" прице 'ставке.ткт

Излаз:

Идите на Садржај

авк низови

И нумерички и придружени низови се могу користити у авк-у. Декларација променљиве низа у авк иста је као и код осталих програмских језика. Неке употребе низова приказане су у овом одељку.

Асоцијативни низ: 

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

$ авк 'БЕГИН
књиге ["Веб дизајн"] = "Учење ХТМЛ 5";
боокс ["Веб Программинг"] = "ПХП и МиСКЛ"
боокс ["ПХП Фрамеворк"] = "Учење Ларавел 5"
принтф "% с \ н% с \ н% с \ н", књиге ["Веб дизајн"], књиге ["Веб програмирање"],
књиге ["ПХП оквир"] '

Излаз:

Нумерички низ:

Нумерички низ од три елемента се декларише и исписује раздвајањем језичка.

$ авк 'БЕГИН
број [0] = 80;
број [1] = 55;
број [2] = 76;

# исписати елементе низа
принтф "Вредности низа:% д \ т% д \ т% д \ н", број [0], број [1], број [2]; '

Излаз:

Идите на Садржај

авк лооп

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

Петља вхиле:

док ће се петља која се користи у следећој наредби пет пута поновити и изаћи из петље за наредбу бреак.

$ Авк 'ПОЧИНИ н = 1; док (н <= 10) if(n > 5) пауза; принт н; н ++ '

Излаз:

За петљу:

За петљу која се користи у следећој авк наредби израчунаће се збир од 1 до 10 и исписати вредност.

$ авк 'ПОЧИЊЕ сума = 0; за (н = 1; н <= 10; n++) sum=sum+n; print sum '

Излаз:

До-вхиле петља:

петља за наредну наредбу наредне наредбе исписат ће све парне бројеве од 10 до 5.

$ авк 'БЕГИН бројач = 10; уради иф (бројач% 2 == 0) штампа бројач; бројач--
вхиле (бројач> 5) '

Излаз:

Идите на Садржај

авк за испис прве колоне

Прва колона било које датотеке може се одштампати помоћу променљиве $ 1 у авк. Али ако вредност прве колоне садржи више речи, исписује се само прва реч прве колоне. Коришћењем одређеног граничника, прва колона се може правилно одштампати. Направите текстуалну датотеку са именом студенти.ткт са следећим садржајем. Овде прва колона садржи текст од две речи.

Студенти.ткт

Каниз Фатема 30тх батцх
Абир Хоссаин 35тх батцх
Јован Абрахам 40тх батцх

Покрените авк наредбу без икаквог граничника. Штампаће се први део прве колоне.

$ авк 'принт $ 1' студенти.ткт

Покрените авк наредбу са следећим граничником. Одштампаће се пуни део прве колоне.

$ авк -Ф '\\ с \\ с' 'принт $ 1' студенти.ткт

Излаз:

Идите на Садржај

авк за штампање последње колоне

$ (НФ) променљива се може користити за испис последње колоне било које датотеке. Следеће авк наредбе ће исписати последњи део и пуни део последње колоне студенти.ткт датотека.

$ авк 'принт $ (НФ)' студенти.ткт
$ авк -Ф '\\ с \\ с' 'принт $ (НФ)' студенти.ткт

Излаз:

Идите на Садржај

авк са греп

греп је још једна корисна наредба Линука за претрагу садржаја у датотеци на основу било ког регуларног израза. Како се команде авк и греп могу користити заједно, приказано је у следећем примеру. греп наредба се користи за претраживање информација о ИД-у запосленог, '1002'фром запослени.ткт датотека. Излаз греп наредбе бит ће послан на авк као улазни податак. Наплатиће се 5% бонуса и одштампати на основу плате запосленог, '1002 ' по команди авк.

$ мачка запосленик.ткт
$ греп '1002' запослени.ткт | авк -Ф '\ т' 'принт $ 2 "добиће $" ($ 3 * 5) / 100 "бонус"'

Излаз:

Идите на Садржај

авк са БАСХ датотеком

Као и друге Линук наредбе, авк наредба се такође може користити у БАСХ скрипти. Направите текстуалну датотеку са именом купци.ткт са следећим садржајем. Сваки ред ове датотеке садржи информације о четири поља. То су ИД купца, име, адреса и број мобилног телефона који су одвојени '/'.

купци.ткт

АЛ4934 / Цхарлес М Бруннер / 4838 Беегхлеи Стреет, Хунтсвилле, Алабама / 256-671-7942
ЦА5455 / Виргиниа С Мота / 930 Бассел Стреет, ВАЛЛЕЦИТО, Калифорнија / 415-679-5908
ИЛ4855 / Анн А Неале / 1932 Паттерсон Форк Роад, Чикаго, Илиноис / 773-550-5107

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

итем_сеарцх.басх

#!/ бин / басх
ецхо "Унесите име државе:"
читано стање
купци = 'греп "$ стате" купци.ткт | авк -Ф "/" 'принт "Име купца:" $ 2, ",
Број мобитела: „$ 4 ''
иф ["$ купци" != ""]; онда
одјекују $ купци
иначе
ецхо "Није пронађен ниједан купац"
фи

Покрените следеће наредбе да бисте приказали излазе.

$ мушки купци.ткт
$ басх итем_сеарцх.басх

Излаз:

Идите на Садржај

авк са сед

Још једна корисна алатка за претрагу Линука је сед. Ова наредба се може користити за претраживање и замену текста било које датотеке. Следећи пример приказује употребу команде авк са сед команда. Овде ће команда сед претраживати сва имена запослених која почињу са 'Ј'и прелази на команду авк као улаз. авк ће штампати запосленог име и ИД након форматирања.

$ мачка запосленик.ткт
$ сед -н '/ Ј / п' запослени.ткт | авк -Ф '\ т' 'принтф "% с (% с) \ н", $ 2, $ 1'

Излаз:

Идите на Садржај

Закључак:

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

Инсталирајте најновији Долпхин Емулатор за Гамецубе & Вии на Линук
Долпхин Емулатор вам омогућава да играте изабране игре Гамецубе и Вии на Линук Персонал Цомпутерс (ПЦ). Долпхин Емулатор је слободно доступан и емула...
Како се користи ГамеЦонкуерор Цхеат Енгине у Линуку
Чланак покрива водич о коришћењу ГамеЦонкуерор варалице у Линуку. Многи корисници који играју игре на Виндовс-у често користе апликацију „Цхеат Енгине...
Најбољи емулатори играће конзоле за Линук
Овај чланак ће навести популарни софтвер за емулацију играће конзоле доступан за Линук. Емулација је слој компатибилности софтвера који опонаша хардве...