Awk

Как да използвам Regex с командата 'awk'

Как да използвам Regex с командата 'awk'

Регулярният израз (регулярният израз) се използва за намиране на дадена последователност от символи във файл. Символи като букви, цифри и специални знаци могат да се използват за определяне на шаблона. Различни задачи могат лесно да бъдат изпълнени с помощта на регулярни изрази. В този урок ще ви покажем как да използвате шаблони на регулярни изрази с командата 'awk'.

Основните символи, използвани в шаблони

Много символи могат да се използват за определяне на модел на регулярно изражение. Най-често използваните символи за дефиниране на регулярни изрази са определени по-долу.

Характер Описание
. Съвпадение с всеки символ без нов ред (\ n)
\ Цитирайте нов метасимвол
^ Съвпадение на началото на ред
$ Съвпадение на края на ред
| Определете заместник
() Определете група
[] Дефинирайте клас знаци
\ w Съвпадение с всяка дума
Съвпадайте с всеки празен знак
Съвпадение с всяка цифра
\ b Съвпадайте с всяка граница на думата

Създайте файл

За да продължите заедно с този урок, създайте текстов файл с име продукти.текст. Файлът трябва да съдържа четири полета: ID, име, тип и цена.

ИД Име Тип Цена

p1001 15 "монитор за монитор $ 100

p1002 A4tech Мишка Мишка $ 10

p1003 Принтер Samsung Принтер $ 50

p1004 HP скенер скенер $ 60

p1005 Мишка Logitech за мишка $ 15

Пример 1: Дефинирайте модел на регулярно изражение, като използвате клас символи

Следващата команда 'awk' ще търси и отпечатва редове, съдържащи символа 'n', последван от символите 'er'.

$ котешки продукти.текст
$ awk '/ [n] [er] / print $ 0' продукти.текст

След изпълнението на горните команди ще се получи следният изход. Изходът показва линията, която съответства на модела. Тук само един ред отговаря на модела.

Пример 2: Определете модел на регулярно изражение, като използвате символа '^'

Следващата команда 'awk' ще търси и отпечатва редове, които започват със знака 'p' и включват числото 3.

$ котешки продукти.текст
$ awk '/ ^ стр.* 3 / print $ 0 'продукти.текст

След изпълнението на горните команди ще се получи следният изход. Тук има един ред, който съответства на модела.

Пример 3: Дефинирайте модел на регулярно изражение, като използвате функцията gsub

The gsub () функция се използва за глобално търсене и замяна на текст. Следващата команда 'awk' ще търси думата 'Scanner' и ще я замени с думата 'Router', преди да отпечата резултата.

$ котешки продукти.текст
$ awk 'gsub (/ Scanner /, "Router")' продукти.текст

След изпълнението на горните команди ще се получи следният изход. Има един ред, който съдържа думата „Скенер', и 'Скенер„се заменя с думата“Рутер'преди редът да бъде отпечатан.

Пример 4: Дефинирайте модел на регулярно изражение с '*'

Следващата команда 'awk' ще търси и отпечатва всеки низ, който започва с 'Mo' и включва всеки следващ символ.

$ котешки продукти.текст
$ awk '/ Mo * / print $ 0' продукти.текст

След изпълнението на горните команди ще се получи следният изход. Три реда съвпадат с модела: два реда съдържат думата „Мишка„и един ред съдържа думата“Монитор'.

Пример 5: Определете модел на регулярно изражение, като използвате символа „$“

Следващата команда 'awk' ще търси и отпечатва редове във файла, които завършват с номер 5.

$ котешки продукти.текст
$ awk '/ 5 $ / print $ 0' продукти.текст

След изпълнението на горните команди ще се получи следният изход.  Във файла има само един ред, който завършва с номер 5.

Пример 6: Дефинирайте модел на регулярно изражение, използвайки '^' и '|' символи

"^'символът показва началото на ред, а'|'символът показва логически ИЛИ израз. Следващата команда 'awk' ще търси и отпечатва редове, които започват със знака 'стр"и съдържат или"Скенер' или 'Мишка'.

$ котешки продукти.текст
$ awk '/ ^ стр.* (Скенер | Мишка) / 'продукти.текст

След изпълнението на горните команди ще се получи следният изход. Резултатът показва, че два реда съдържат думата „Мишка„и един ред съдържа думата“Скенер'. Трите реда започват с символа 'стр'.

Пример 7: Определете модел на регулярно изражение, като използвате символа „+“

"+'се използва за намиране на поне едно съвпадение. Следващата команда 'awk' ще търси и отпечатва редове, които съдържат символа 'н' поне веднъж.

$ котешки продукти.текст
$ awk '/ n + / print' продукти.текст

След изпълнението на горните команди ще се получи следният изход. Тук, героят "н'съдържа се появява поне веднъж в редовете, които съдържат думите Монитор, принтер и скенер.

Пример 8: Дефинирайте модел на регулярно изражение с помощта на функцията gsub ()

Следващата команда 'awk' ще търси думата глобално 'Принтер„и го заменете с думата“Монитор' използвайки gsub () функция.

$ котешки продукти.текст
$ awk 'gsub (/ Принтер /, „Монитор“) print $ 0' продукти.текст

След изпълнението на горните команди ще се получи следният изход. Четвъртият ред на файла съдържа думата „Принтер„два пъти и в изхода“Принтер„е заменен с думата“Монитор'.

Заключение

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

Пренастройте бутоните на мишката си по различен начин за различен софтуер с X-Mouse Button Control
Може би се нуждаете от инструмент, който може да промени контрола на мишката с всяко приложение, което използвате. Ако случаят е такъв, можете да изпр...
Преглед на безжична мишка на Microsoft Sculpt Touch
Наскоро прочетох за Microsoft Sculpt Touch безжична мишка и реших да я купя. След като го използвах известно време, реших да споделя опита си с него. ...
Екранен тракпад и указател на мишката на AppyMouse за таблети с Windows
Потребителите на таблети често пропускат показалеца на мишката, особено когато са привични да използват лаптопите. Смартфоните и таблетите със сензоре...