Awk

10 страхотни примера за командване на Awk

10 страхотни примера за командване на Awk
Командата Awk е мощен инструмент за обработка на данни. Получава входни данни, манипулира ги и дава резултати в стандартен изход. Различни операции могат да се извършват върху редове и колони на файл.

Познаването на основите на командата „awk“ е много важно, когато става въпрос за ефективна обработка на данните и тази публикация обхваща ключовите характеристики на командата „awk“. Нека първо проверим синтаксиса:

$ awk [опции] [файл]

Някои от често използваните опции са дадени в таблицата по-долу:

Вариант Описание
-F За да зададете файлов разделител
Посочете файла, който съдържа скрипта “awk”
-v За да присвоите променлива

Нека да разгледаме няколко примера за използването на командата “awk” и за демонстрация направих текстов файл с името на testFile.текст:

1. Как да отпечатате колона на файл с командата awk?

Командата “awk” може да се използва за получаване на конкретна колона от текстовия файл. За да отпечатате съдържанието на файла:

$ cat testFile.текст

Сега, за да отпечатате втората колона на файла, използвайте:

$ awk 'print $ 2' testFile.текст

За да отпечатате повече от едно поле, използвайте командата:

$ awk 'print $ 1, $ 2, $ 3' testFile.текст

Ако не използвате запетая „,“, изходът ще бъде без интервали:

$ awk 'print $ 1 $ 2 $ 3' testFile.текст

2. Как да използвам регулярния израз с команда awk:

За да съпоставим низовете или който и да е израз, използваме наклонени черти „//“, например, ако искате да отпечатате имената на хората, които изучават „История“, използвайте:

$ awk '/ History / print $ 2' testFile.текст

Резултатът ясно показва, че само „Сам“ и „Томи“ учат курса „История“.

3. Как да използваме релационния израз с командата “awk”:

За да съответства на съдържанието на конкретно поле, може да се използва релационен израз. За да съпоставите всеки низ или израз срещу поле, посочете полето и използвайте оператора за сравнение “~” с модела, както е представен в следната команда:

$ awk '$ 3 ~ / is / print $ 2' testFile.текст

Горният изход показва всяко поле в колона 2 срещу всяко поле, което съдържа „е“ в колона 3.

И за да получите обратния изход на горната команда, използвайте „! ~ ”Оператор:

$ awk '$ 3! ~ / is / print $ 2 'testFile.текст

За сравнение можем да използваме и оператори като по-големи от „>“ и по-малки от „<” and equal “=” as well:

$ awk '$ 4> 70 print $ 2' testFile.текст

В резултата са отпечатани имената на хора, които са получили оценки над 70.

4. Как да използвам шаблона за диапазон с команда awk:

Диапазон може да се използва и за търсене; просто използвайте запетая “,”, за да отделите диапазона, както е представено в посочената по-долу команда:

$ awk '/ Joel /, / Marlene / print $ 3' testFile.текст

Резултатът показва обектите от диапазона от „Joel“ до „Marlene“ от колона 2. Можем да използваме двойния знак за равенство "==", за да определим диапазон; вижте примера по-долу:

$ awk '$ 4 == 80, $ 4 == 90 print $ 0' testFile.текст

Резултатът показва имената на хората от колона 2 за диапазона от марки „70 до 80“ от колона 4.

5. Как да комбинирам шаблон с помощта на логически оператор:

Използването на логически оператори като ИЛИ “||,” И “&&” ви позволява да комбинирате модели за търсене. Използвайте следната команда

$ awk '$ 4> 80 && $ 6> 0.4 print $ 2 'testFile.текст

Горната команда отпечатва имената на хората спрямо четвъртото поле, по-значимо от 80 и шестото поле, по-голямо от 0.4. И само два записа изпълняват условието.

6. Специалните изрази на командата awk:

Има два специални израза „НАЧАЛО" и "КРАЙ”:

НАЧАЛО: За да извършите действие преди обработката на данните

END: За да извършите действие след обработката на данните

$ awk 'НАЧАЛО печат „Обработката е започнала“; отпечатайте $ 2; END print "Обработката приключи" 'testFile.текст

7. Полезната вградена променлива на команда awk:

Командата awk има различни променливи, които помагат при обработката на данни:

Променлива Описание
NF Той дава броя на полетата в данните
NR Той дава номера на текущия запис
ИМЕ НА ФАЙЛ Показва името на файла, който в момента се обработва
FS и OFS Разделител на полето и изходен разделител на полето
RS и ORS Разделя разделителя на записа и изходния запис

Например:

$ awk 'END print "Името на файла е" FILENAME "има" NF "полета и" NR "записи"' testFile.текст

Използваме „END“, но ако използвате „BEGIN“, изходът ще даде 0 полета и 0 записа.

8. Как да смените разделителя на записи:

Разделителят по подразбиране в записа обикновено е интервал; ако има запетая „,“ или точка „.”Като разделител на поле, използвайте опцията„ FS ”заедно с разделителя.

Нека имаме друг файл, където полетата с данни са разделени със запетая двоеточие „:“:

$ cat testFile2.текст
$ awk 'BEGIN FS = “:” print $ 2' testFile2.текст

Тъй като разделителят на файла е двоеточие, но командата „awk“ дори е полезна за файлове като този, просто използвайте опцията „FS“.

Може да се използва и „-F“:

$ awk -F “:” 'print $ 2' testFile2.текст

Разделителят на записи по подразбиране е „нов ред“ и за да зададете разделителя на записи на „:“, използвайте:

$ awk 'BEGIN RS = “:” print $ 1' testFile2.текст

9. Awk Действия:

Awk действията са малки програми, които са заобиколени от скоби „“ и имат повече от един оператор, разделен с точка и запетая „;“.

Най-използваният израз с командата “awk” е изразът “print”. Например, за да отпечатате текст с всеки запис, използвайте текстов низ в кавички:

$ awk '„The is a field,“ $ 2' testfile.текст

Нека извършим проста операция за сумиране, използвайки awk:

$ awk 'sum + = $ 4 END printf “% d \ n”, sum' testFile.текст

10. Създаване на awk програма:

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

НАЧАЛО
i = 2
докато (j<4)

отпечатайте „Умножението на 2 с„ j “е„ i * j;
j++

Запазете програмата под името „myCode.awk”И за да го стартирате, отворете терминала и напишете:

$ awk -f myCode.awk

Заключение:

Командата “awk” е удобна команда за обработка, сканиране на данни от текстови файлове, като например отделяне на всяко конкретно поле на файл; използваме командата “awk”. Улеснява търсенето на каквото и да е във всякаква форма или модел от текстовите файлове. В това ръководство разбираме основите на командата “awk” и нейното използване. Командата “awk” проверява данните, генерира отчети и дори анализира файлове. Използването на прости команди “awk” също така позволява на потребителите да пишат малки програми, за да обработват данните по-ефективно.

Добавете жестове на мишката към Windows 10, като използвате тези безплатни инструменти
През последните години компютрите и операционните системи значително се развиха. Имаше време, когато потребителите трябваше да използват команди за на...
Контролирайте и управлявайте движението на мишката между множество монитори в Windows 10
Двоен дисплей на мишката ви позволява да контролирате и конфигурирате движението на мишката между множество монитори, като забавя движенията му близо ...
WinMouse ви позволява да персонализирате и подобрите движението на показалеца на мишката на компютър с Windows
Ако искате да подобрите функциите по подразбиране на показалеца на мишката, използвайте безплатна програма WinMouse. Той добавя още функции, за да ви ...