Научете Linux

Linux awk команда с 10 примера

Linux awk команда с 10 примера

Компютърните системи винаги са били използвани за анализ на ценни данни, съхранявани в прости текстови файлове. На свой ред, самите компютърни системи се управляват чрез регистрационни файлове. Това, което е потенциално често в тези две ситуации, е, че те съхраняват голямо количество данни, които често трябва да бъдат рационализирани, преди действително да се прочетат данните; в противен случай е просто объркващо.

Например, ако четете някои данни, подредени в таблична форма, искате някои колони, а не други.

Това изискване беше тежко дори през деня и следователно проектът GNU притежава невероятен инструмент, който помага на потребителите да филтрират и извличат данни за по-добро изживяване. Този инструмент е AWK.

История

AWK всъщност е език за програмиране, който е посветен на обработката на текст. Използва се за извличане на данни по специфични модели. Разработена е през 70-те години от лабораториите Bell, от Алфред Ахо, Питър Уайнбъргър и Брайън Керниган (инициалите на техните фамилии раждат името). Развитието на awk не спря дотук. През 1985 г. е въведена нова версия, която внесе нови промени в командата awk, включително възможността за обработка на множество входни потоци, изчислени регулярни изрази, дефинирани от потребителя функции и много други! Накратко, актуализацията го направи по-мощен език за програмиране.

Awk има различно изпълнение. За да се гарантира, че има правилно изпълнение, което предлага стандартен подход, Пол Рубин пише gawk през 1986 г. Работи добре с по-новата awk.

Отделно от това, през 1989 г. System V Release бяха добавени нови функции. Разработчиците също подобриха тъмните ъгли, което го направи по-добър за програмистите и потребителите да го използват. Последната промяна се случи през 1997 г., когато awk видя достъп до мрежата - осигурявайки на потребителите възможността да решават проблеми дистанционно.

Последното пренаписване, направено през 2011 г., когато John Haque пренаписа вътрешните части на gawk.

Неща, които можете да правите с AWK

Досега трябва да е ясно до какво е способен AWK. Това е скриптов език с общо предназначение, който ви позволява да се справяте с обработката на текст. Напредналите потребители също могат да го използват за анализ и отчитане.

AWK не е като другите програмни езици, тъй като се управлява от данни, а не процедурен език за програмиране. Това означава, че можете ефективно да го използвате за извършване на действия срещу въвеждане на текст. Накратко, можете да го използвате, за да трансформирате данни, да ги въвеждате и да ги изпращате като стандартен изход.

Накратко, можете да използвате AWK за извършване на прости операции, като например разделяне на всеки ред за въвеждане на полета, сканиране на файл ред по ред, извършване на действие (а) върху линии на съвпадение и т.н! Командата awk е полезна и за форматирани от процедурата отчети и трансформира файлове с данни. Освен това получавате достъп и до програмни конструкции като условни & цикли, низови и аритметични операции и форматирани изходни редове.

Как работи awk

В този раздел ще научим как работи awk. Важно е да научите, че awk има различни реализации. За да сме сигурни, че сме на една и съща страница, ще обсъдим и използваме внедряването на GNU - което е популярно като gawk. В повечето случаи gawk е свързан със символен интерпретатор awk.

За да получим добро разбиране, първо трябва да разберем записите и полетата.

Добре известно е, че awk може да обработва текстови потоци и файлове с данни. За да се обработят данните, входът е разделен на полета и записи. За да се гарантира, че awk няма да бъде претоварен, един запис се обработва по всяко време, докато достигне края на входа. Освен това записите са допълнително разделени на прости раздели, като се използва разделител на записи, като се използват символи. Също така всеки запис се отделя с помощта на символи от нов ред. Това означава, че всеки ред може да бъде наречен като запис.

Можете да изберете да зададете нов разделител на записи, като използвате променливата RS.

След това идва делителят на подадените файлове. Както обикновено, всеки запис има полета и те са разделени с помощта на разделителя на полета. Разделителят на поле може да бъде празно пространство, раздели, символи за нов ред и интервал. Също така, всяко поле се препраща с помощта на символа $, докато номерът на полето започва с 1. Това означава, че първото поле може да бъде означено като $ 1, докато второто поле е означено като $ 2. По този начин n-тото поле може да бъде означено като $ nf.

Програмата awk

Вторият аспект на awk е програмата awk. Ако искате да работите с awk, трябва да напишете програма, която позволява на командата да изпълнява или обработва текста. Програмата awk предлага много функционалност, използвайки правила и дефинирани от потребителя функции. Правилата работят с двойка действия или един шаблон, а правилата се разделят с помощта на запетая или нов ред.

В случай, че се чудите, awk програма ще изглежда по-долу.

модел действие модел действие .. 

Накратко, програмата awk работи чрез съвпадение на записите въз основа на модели. Ако шаблонът бъде намерен в записа, той ще го обработи. Ако не, тогава целият запис се съпоставя, за да се увери, че нещо съвпада според правилата.

awk Примери за команди

Сега, когато имаме добро разбиране за командата awk и как тя работи, сега е време да разгледаме някои от примерите за команда awk.

Ако никога преди не сте използвали awk, може да искате да знаете, че awk може да се използва с опции като по-долу:

awk опции програмен файл

Опциите, които можете да използвате с awk, включват следното:

Пример 1: Прочетете AWK скриптове

Един от най-често срещаните начини за използване на awk е четенето на скриптове. Като потребител на Linux можете да създадете awk скрипт, като използвате единични кавички.

За да направите това, трябва да въведете следната команда в терминала.

$ awk 'print "Добре дошли в Hello, World - AWK tutorial"'

В горния пример това, което въвеждате, ще бъде върнато на самия екран. Командата ще продължи да се изпълнява, докато не я завършите, като натиснете CTRL + D.

Пример 2: Използване на множество команди

Друга често срещана употреба на awk е използването на множество команди. Като потребител може да искате да комбинирате две awk команди в една, за да получите желания резултат. В този пример ще изведем низ и след това ще заменим втората дума в низа с нов вход.

$ echo "Hello World" | awk '$ 2 = "Вселена; отпечатай $ 0"'

В горния пример първо отекнахме „Здравей, свят“ на терминала. След това обединихме друга команда awk, където заменихме втората дума с Universe - и накрая изведохме низа, който е Hello Universe.

Пример 3: Използване на променлива

Променливите ви позволяват да съхранявате информация и да имате достъп до тях. Ако преди сте използвали езици за програмиране, със сигурност знаете за тях. В случай на awk го използвате за обработка на текстови файлове. Използвайки променливите, можете да получите достъп до определени полета с данни във файла точно както по-долу.

За тази цел създадохме нов текстов файл, mynewfile, където въвеждаме няколко произволни, но красиви линии.

След това трябва да изпълните командата, както е показано по-долу.

awk 'print $ 1' mynewfile

Както можете да видите, той извежда тази конкретна променлива, която показва това поле от файла. Също така, трябва да видите грешката, която направих.

Пример 4: Предварителна обработка на AWK

С командата awk можете да добавите предварителна обработка. За да направите това, трябва да използвате ключовата дума BEGIN.

Ако четете внимателно, създадохме нов файл по-горе. Нека се опитаме да използваме предварителната обработка awk, за да покажем съдържанието на файла.

Командата за него е както по-долу.

awk 'awk BEGIN print "Съдържанието на файла:"> print $ 0', mynewfile

Горният пример на екранна снимка не е правилен. Използвах “Begin” вместо “BEGIN”, поради което не виждате изпълнението на оператора за печат. Оставям това за вас, за да изпробвате и да видите как върви резултатът ви!

Пример 5: Четене на скрипт от файл

Това е сложно. Тук можете да използвате awk скрипта за четене на файл.

Създаваме нов скрипт, който съдържа следното.

отпечатайте $ 1 "вселената започва от" $ 6 "

Запазихме файла като новинарен текст.

Сега изпълнете следната команда на терминала.

$ awk -F: -f newscript / etc / passwd

Очарователно, нали!

Пример 6: AWK последваща обработка

След това ще разгледаме последващата обработка на AWK. Той работи подобно на предварителната обработка, но този път последващата обработка използва командата END.

$ awk 'BEGIN print "Съдържанието на файла започва сега:">> print $ 0>> END print "Файлът завършва"' mynewfile

Пример 7: Дефинирани от потребителя променливи

Можете също да използвате променливи в командата awk, без да използвате число или знак за долар.

По-долу е даден пример.

$ awk 'НАЧАЛО test = "Добре дошли в FossLinux Awesome Linux Family" test test'

Пример 8: Вградени функции

Командите awk също са полезни със своите вградени функции. Например можете да използвате математически функции, както и функции String.

$ awk 'НАЧАЛО x - "fossLinux"; печатаща машина (x) '
$ awk 'НАЧАЛО x = exp (35); отпечатай x '

Пример 9: Форматиране на печат

Можете също така да форматирате функцията printf, която идва с awk. Има много модификатори, които можете да използвате. Например можете да използвате c, за да разпечатате като низ; можете също да използвате d за целочислена стойност и т.н.

$ awk 'НАЧАЛО x = 200 * 200 printf "Резултатът е:% e \ n", x'

Пример 10: Структурирани команди

Можете също да използвате структурирани команди като if, else, while или for loop. Нека да видим долния пример за командата if.

$ awk 'if ($ 1> 20) print $ 2' mynewfile

Заключение

Това ни води до края на нашия урок за команди awk. И така, намерихте ли го за полезен и ще го използвате ли за вашата работа? Коментирайте по-долу и ни уведомете.

5 най-добри аркадни игри за Linux
В днешно време компютрите са сериозни машини, използвани за игри. Ако не можете да получите новия висок резултат, ще разберете какво имам предвид. В т...
Битка за Уеснот 1.13.6 Разработка освободена
Битка за Уеснот 1.13.6, издаден миналия месец, е шестата версия за разработка в 1.13.x серия и предоставя редица подобрения, най-вече на потребителски...
Как да инсталирате League Of Legends на Ubuntu 14.04
Ако сте фен на League of Legends, това е възможност за вас да тествате League of Legends. Имайте предвид, че LOL се поддържа на PlayOnLinux, ако сте п...