LinuxDays 2017 Ondřej Guth GNU grep LD 17 1 / 14

Podobné dokumenty
Hledání v textu algoritmem Boyer Moore

Základy algoritmizace. Pattern matching

Metodický koncept k efektivní podpoře klíčových odborných kompetencí s využitím cizího jazyka ATCZ62 - CLIL jako výuková strategie na vysoké škole

1. Pojmy a definice. 2. Naivní algoritmus. 3. Boyer Moore

Úvod do Operačních Systémů

Vyhledávání v textu. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

Regulární výrazy. Vzory

Regulární výrazy. Filtry grep, sed a awk.

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

Katedra počítačů FEL

Dokumentace programu piskvorek

Regulární výrazy a grep

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Semestrální úloha 1 z předmětu Programovací jazyk C. Textový merge. Student:

součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

FILTRY V GNU/LINUXU ZLÍNSKÝ KRAJ. Obchodní akademie, Vyšší odborná škola a Jazyková škola s právem státní jazykové zkoušky Uherské Hradiště

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk


INDEX

Regulární výrazy. jemný úvod. Miloslav Brada

Vyhledávání řetězců. a b a c a a b. a b a c a b. a b a c a b

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

Úvod do UNIXu. Okruh č. 4 - vi, regulární výrazy, grep a sed. Jakub Galgonek. verze r2. inspirováno materiály Davida Hokszy

Microsoft Office. Excel vyhledávací funkce

Datové struktury 2: Rozptylovací tabulky

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

ZADÁNÍ BAKALÁŘSKÉ PRÁCE

PROGRAMOVÁNÍ V SHELLU

Příkaz find, práce s procesy a úlohami, plánování úloh

Standardní algoritmy vyhledávací.


Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Úvod do Operačních Systémů

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

Programování v Pythonu

Šifrování/Dešifrování s použitím hesla

grep a regulární výrazy

ROZPOČTY A KALKULACE... 3 DATOVÁ ZÁKLADNA... 6 SOUPISY PRACÍ ČERPÁNÍ... 8 POROVNÁNÍ ROZPOČTŮ A NABÍDEK... 11


Nastroje na zpracovani textu:


LINUX přesměrování a roury


Přednáška 1. Úvod. Historie OS Unix. Architektura OS Unix. Interpret příkazů. SHELL. Zpracování příkazové řádky. Speciální znaky. Zkratky příkazů.


Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.


Proměnné a parametry. predn_08.odt :00:38 1

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

Úvod do programování 6. hodina

PŘÍKAZY PRÁCE SE SLOŽKAMI


Odstranění řádků (na základě hodnoty)


Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Úvod do Operačních Systémů

WAK INTRA. Ovládání systému. internetový informační systém. účinný nástroj pro vedení firemních agend.

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy


Teoretická informatika - Úkol č.1

Algoritmy II. Otázky k průběžnému testu znalostí

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Jak vyhledávat. Vyhledávače KAPITOLA 3

Konečný automat. Jan Kybic.

1 Úvod do kompilátorů

Moderní systémy pro získávání znalostí z informací a dat

Tip: Využívejte dialog v plné síle, tedy rozbalený po klepnutí na tlačítko Možnosti!

Manuál pro implementaci aplikace Na poštu

a) b) c) Radek Mařík


Program grep. predn_05.doc

Úvod do Operačních Systémů

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

/01: Teoretická informatika(ti) přednáška 5


Obchodní akademie Tomáše Bati a Vyšší odborná škola ekonomická Zlín. Modernizace výuky prostřednictvím ICT registrační číslo CZ.1.07/1.5.00/34.

Systém souborů (File System)

Interpret jazyka IFJ2011

KAPITOLA 5. Práce s textovými řetězci. V této kapitole najdete: Deklarace textových řetězců Operace s řetězci Ukázkový kód pro operace s řetězci

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

1. D Y N A M I C K É DAT O V É STRUKTUR Y


/1: Teoretická informatika(ti) přednáška 4

EATON TOUR Instalační přístroje řady xeffect Eaton Corporation. All rights reserved.

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Regulární výrazy. Honza Vrbata

Obsah. Úvodem 15. Zaměření knihy 15 Co v knize najdete 15 Doprovodné CD 17 Poděkování 18

GNU/LINUX SILNÉ A SLABÉ STRÁNKY

KRY. Projekt č. 2. Kamil Dudka xdudka00

Chybějící atributy a postupy pro jejich náhradu

Rozšíření ksh vůči sh při práci s proměnnými

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Algoritmy a datové struktury

Přehled příkazů pro CLI část aplikace Fits Header Modifier Jan Hlava

07 Základní pojmy teorie grafů

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

NPRG030 Programování I, 2010/11

Transkript:

Používáte GNU grep? A víte, jak funguje uvnitř? Ondřej Guth ondrej.guth@fit.cvut.cz LinuxDays 2017 Ondřej Guth GNU grep LD 17 1 / 14

1 Úvod 2 Přehled zpracování vstupu 3 Obyčejný řetězec jako regulární výraz BM algoritmus BM a grep 4 Shrnutí Ondřej Guth GNU grep LD 17 2 / 14

Úvod Čím se budeme zabývat Verze GNU grep 3.1 (Gentoo GNU/Linux) Configure --disable-nls --with-included-regex Ondřej Guth GNU grep LD 17 3 / 14

Úvod Rychlost Prohledávání souboru o velikosti 2,1G: time grep kernel /tmp/syslog > /dev/null real 0m0.023s user 0m0.001s sys 0m0.022s time awk /kernel/ /tmp/syslog > /dev/null real 0m7.233s user 0m6.850s sys 0m0.383s Ondřej Guth GNU grep LD 17 4 / 14

Přehled zpracování vstupu Postup 1 Tokenizace výrazu 2 Překlad výrazu do strukturního stromu (libc) 3 Zpracování vstupu prohledávací funkcí 4 V případě nalezeného výskytu vyhledání hranic řádku (a výpis) Ondřej Guth GNU grep LD 17 5 / 14

Přehled zpracování vstupu Překlad výrazu do strukturního stromu jojoj CONCAT CONCAT END OF RE CONCAT j CONCAT o CONCAT j j o Ondřej Guth GNU grep LD 17 6 / 14

Obyčejný řetězec jako regulární výraz Algoritmy Souvislé řetězce v RV kwset matcher jeden vzorek: algoritmus BM více vzorků: algoritmus AC Ondřej Guth GNU grep LD 17 7 / 14

Obyčejný řetězec jako regulární výraz BM algoritmus Protisměrné vyhledávání Méně porovnání než je znaků vstupu. Příklad j o j k j o j o j j o j o j j o j o j Ondřej Guth GNU grep LD 17 8 / 14

Obyčejný řetězec jako regulární výraz BM algoritmus Algoritmus Boyer-Moore Varianta použitá v GNU grep kwset matcher Posun v případě neshody: Bad character shift Nejbližší výskyt prvního přečteného znaku (zprava) z textu ve výrazu. delta2 Zarovnání výrazu na další opakování dosud přečtené části textu. Ondřej Guth GNU grep LD 17 9 / 14

Obyčejný řetězec jako regulární výraz BM algoritmus Algoritmus Boyer-Moore Bad character shift BCS pro jojoj j: 0 o: 1 k: 5 Příklad j o j o o k j o j o j j o j o j j o j o j j o j o j Posun: 1. Posun: 5. Posun: 0. Ondřej Guth GNU grep LD 17 10 / 14

Obyčejný řetězec jako regulární výraz BM algoritmus Algoritmus Boyer-Moore Varianta použitá v GNU grep kwset matcher Posun v případě neshody: Bad character shift Nejbližší výskyt prvního přečteného znaku (zprava) z textu ve výrazu. delta2 Zarovnání výrazu na další opakování dosud přečtené části textu. Ondřej Guth GNU grep LD 17 11 / 14

Obyčejný řetězec jako regulární výraz BM algoritmus Algoritmus Boyer-Moore delta2 Příklad K Y K Y R Y K Y 0 6 6 6 6 4 6 2 Ondřej Guth GNU grep LD 17 12 / 14

Obyčejný řetězec jako regulární výraz BM a grep Zpracování vstupu v GNU grep Příklad K Y K Y K Y K Y R Y K Y\nY K Y K Y R Y K Y K Y R Y K Y K Y K Y K Y RK Y K Y R Y K Y K YK KY YK RY YR KY YK Y BCS pro Y je 0 delta2 pro YKY je 4 výkyt, hranice řádku (memchr a memrchr), výpis, další řádek BCS pro K je 1 delta2 K Y K Y R Y K Y 0 6 6 6 6 4 6 2 Ondřej Guth GNU grep LD 17 13 / 14

Shrnutí Závěr hledání s kwset matcher pro jeden vzorek BM algoritmus hledání s kwset matcher pro více vzorků (grep -e vz1 -e vz2) AC algoritmus počítání tabulek pro posuvy komplikovanější vzorky Ondřej Guth GNU grep LD 17 14 / 14