grep a regulární výrazy

Podobné dokumenty
Regulární výrazy a grep

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

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

Program grep. predn_05.doc

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

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

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

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu.

Úloha 3 editor a skripty. připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese

Regulární výrazy. Honza Vrbata

1-Úvod. Automaty a gramatiky(bi-aag) Plán přednášky. 8. Regulární výrazy - aplikace

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.

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

Úvod do UNIXu. Libor Forst

Úvod. unx-predn_01-uvod.odt :13:43 1

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

Úvod, jednoduché příkazy

ÚVOD DO UNIXU. Metodický list č. 1

Tvorba výrazu: speciální znaky shellu se uvádějí do apostrofů jednotlivé části výrazu se oddělují mezerou

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

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

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

SQL a XML jako alternativa ke klasickým unixovým nástrojům

Identita uživatelů, přístupová práva. Linux

Programování. Bc. Veronika Tomsová

PROGRAMOVÁNÍ V SHELLU

LINUX přesměrování a roury

Základy algoritmizace a programování

Formátování textu pomocí regulárních výrazů

Vstupní požadavky, doporučení a metodické pokyny

UNIVERZITA PARDUBICE ÚSTAV ELEKTROTECHNIKY A INFORMATIKY VYUŽITÍ REGULÁRNÍCH VÝRAZŮ PŘI OPRAVÁCH TEXTU, ÚPRAVÁCH A GENEROVÁNÍ SOUBORŮ BAKALÁŘSKÁ PRÁCE


Algoritmy a datové struktury

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

Algoritmizace a programování

Úvod do UNIXu. Jirka Boháč Gymnázium Jaroslava Seiferta 2003/2004


1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

DUM 3 téma: Podmínky a Globální proměnné

Regulární výrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března / 20

BASH. Kouzla s příkazovou řádkou. Petr Koloros

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

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

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

Sekvenční a podmíněné provádění

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

Skriptovací jazyky. Obsah

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

Cvičení předmětu BI PUN (Pokročilé Unixové Nástroje)

Seznámení se shellem, textové editory numerické výpočty

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

Střední odborná škola a Střední odborné učiliště, Hořovice

HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT

Tabulkový procesor. Základní rysy

Konstruktory překladačů

PSK3-9. Základy skriptování. Hlavička

Přednáška 5. Identita uživatelů, procesů a souborů. Přístupová práva a jejich nastavení. Úvod do Operačních Systémů Přednáška 5

Regulární výrazy. Vzory

Databáze ROMARIN (WIPO)

Jak na hromadné nahrazování textu?

Základní příkazy pro práci se soubory

Střední odborná škola a Střední odborné učiliště, Hořovice

Operační systémy 2. Firewally, NFS Přednáška číslo 7b

Téma 9: Administrace systému CentOS. Představení a používání aplikací pro administraci CentOS

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.

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

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

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

Konec a tak. PB173 Programování v C++11. Vladimír Štill, Jiří Weiser. Fakulta Informatiky, Masarykova Univerzita. 15.

PRACUJEME S SHELLEM Ať žije BASH.

Úvod do programovacích jazyků (Java)

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Operační systémy. Cvičení 1: Seznámení s prostředím

BI-AWD. Administrace Webového a Databázového serveru Konfigurace webového serveru Apache httpd

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ů.

Instalační a uživatelská příručka aplikace VHDT

NPRG030 Programování I, 2010/11

Úvod do databázových systémů

ČVUT FIT: BI-SKJ: Perl

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

Popis programu EnicomD

Domácí příprava k předmětu YD38UOS Úloha 10 práce s lokálními soubory pokračování

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2

NPRG030 Programování I, 2016/17 1 / :58:13

MAXScript výukový kurz

Stručný úvod pro programátory. Michal Kuchta

Sentech AL Instalace a ovládání programu BREATH

cyklus s daným počtem opakování cyklus s podmínkou na začátku (cyklus bez udání počtu opakování)

Úvod do programování - Java. Cvičení č.4

Operační systém UNIX

Program a jeho spuštění 8. Vaše první pošta 11 Vše v jednom okně 11. Editor zpráv 12

Modely vyhledávání informací 4 podle technologie. 1) Booleovský model. George Boole Aplikace booleovské logiky

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

PSK3-3. Základní příkazy. Zápis cesty

Operační systémy 1. Přednáška číslo Souborové systémy

Administrace Unixu a sítí. Tomáš Kouba <

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP.


Sentech AL 7000 C. Instalace a ovládání programu BREATH

Transkript:

grep a regulární výrazy Josef Hajas hajasj1@fel.cvut.cz http://cs.felk.cvut.cz/~hajasj1/unix/ Vysázeno v LAT E Xu p.1/1

Co nás čeká grep: K čemu slouží? Jak používat? nejpoužívanější přepínače grepu regulární výrazy grepu mutace grepu a rozšířené regulární výrazy regulární výrazy v jiných programech Vysázeno v LAT E Xu p.2/1

grep Globaly search for Regular Expression and Print (skupina příkazů editoru ex) grep [options] regexp [file...] -i case Insensitive -c Count -l List file names only -v negace Výrazu Vysázeno v LAT E Xu p.3/1

grep Globaly search for Regular Expression and Print (skupina příkazů editoru ex) grep [options] regexp [file...] -i case Insensitive -c Count -l List file names only -v negace Výrazu Pouze GNU verze grepu -r hledej i v podadresářích Vysázeno v LAT E Xu p.3/1

grep: příklady $ cd /home/stud/hajasj1/grep/ grep jako filter: $ ps -a grep grep Vysázeno v LAT E Xu p.4/1

grep: příklady $ cd /home/stud/hajasj1/grep/ grep jako filter: $ ps -a grep grep grep jako vyhledávač: $ grep root syslog Vysázeno v LAT E Xu p.4/1

grep: příklady $ cd /home/stud/hajasj1/grep/ grep jako filter: $ ps -a grep grep grep jako vyhledávač: $ grep root syslog grep jako počítadlo: $ grep -c root syslog Vysázeno v LAT E Xu p.4/1

grep: příklady $ cd /home/stud/hajasj1/grep/ grep jako filter: $ ps -a grep grep grep jako vyhledávač: $ grep root syslog grep jako počítadlo: $ grep -c root syslog grep jako Mr Propper: $ grep -v root syslog > ~/syslog.new Vysázeno v LAT E Xu p.4/1

Magické regulární výrazy Proč regulární výrazy? Všechny konečné jazyky jsou regulární. Reg. výraz je úplný popis regulárního jazyka. Teoreticky dobře zvládnuté. Dostatečně obecné. Vysázeno v LAT E Xu p.5/1

Magické regulární výrazy Proč regulární výrazy? Všechny konečné jazyky jsou regulární. Reg. výraz je úplný popis regulárního jazyka. Teoreticky dobře zvládnuté. Dostatečně obecné. Společné rysy s expanzí shellu: [ ] Znak jedním z vyjmenovaných Vyřadí/zapne speciální význam znaku n Vysázeno v LAT E Xu p.5/1

Logika regulárních výrazů $ echo.*....skryty $ echo * grep.* syslog Vysázeno v LAT E Xu p.6/1

Logika regulárních výrazů $ echo.*....skryty $ echo * grep.* syslog $ ls -a grep.*....skryty syslog Vysázeno v LAT E Xu p.6/1

Logika regulárních výrazů $ echo.*....skryty $ echo * grep.* syslog $ ls -a grep.*....skryty syslog Znak následovaný iterací Vysázeno v LAT E Xu p.6/1

Metaznaky Zástupci znaků. Libovolný znak [ˆ ] Různý od uvedených nw (GNU) Znak slova: [a-za-z_0-9] Iterace předchozího znaku * Libovolný počet opakování n{m,nn} m až n výskytů n+ (GNU) Alespoň jedno opakování n? (GNU) Nanejvýš jeden Vysázeno v LAT E Xu p.7/1

Metaznaky Pozice výskytu ˆ Začátek řádku $ Konec řádku n< n> Hranice slova Pamět n( n) Skupina se zapamatováním n3 Třetí zapamatovaný Vysázeno v LAT E Xu p.8/1

Příklady použití metaznaků Zpět k našemu blackhat příteli: Jeho pokusy začaly cca v 21:00 Úspěšně se přihlásil ve 21:33 Apr 4 21:33:23 sunray1 sshd[1571]: [ID 800047 auth.info] Failed password for root from 62.245.93.38 port 55444 ssh2 $ grep -v ˆApr n{1,n}4 21:[0-3][0-9].*root syslog > ~/syslog.new Vysázeno v LAT E Xu p.9/1

Mutace grepu grep [-e regexp -f file] [file...] fgrep = grep -F fast grep hledaný výraz se interpretuje jako čistý text méně náročný na zdroje systému Vysázeno v LAT E Xu p.10/1

Mutace grepu grep [-e regexp -f file] [file...] fgrep = grep -F fast grep hledaný výraz se interpretuje jako čistý text méně náročný na zdroje systému egrep = grep -E extended regexp Vysázeno v LAT E Xu p.10/1

Mutace grepu grep [-e regexp -f file] [file...] fgrep = grep -F fast grep hledaný výraz se interpretuje jako čistý text méně náročný na zdroje systému egrep = grep -E extended regexp agrep approximate grep Vysázeno v LAT E Xu p.10/1

Rozšířené regulární výrazy Místo znaku tu může vystupovat celý podvýraz Změny oproti základním regulárním výrazům () Vytyčení podvýrazu pro iterace nn Zpětná reference zde není možná {m,n} m až n výskytů + Alespoň jedno opakování? Nanejvýš jeden Logické nebo Vysázeno v LAT E Xu p.11/1

Rozšířené regulární výrazy: příklad $ egrep ˆApr +4 21:[0123][0-9] (.*blackhat.*62.245.93.38) syslog Apr 4 21:04:07 sunray1 su: [ID 810491 auth.crit] su root failed for blackhat on /dev/pts/19... Apr 4 21:33:23 sunray1 sshd[1571]: [ID 800047 auth.info] Failed password for root from 62.245.93.38 port 55444 ssh2... Vysázeno v LAT E Xu p.12/1

Regulární výrazy za hranicemi grepu Jednoznakové regexp: sed, vi Vysázeno v LAT E Xu p.13/1

Regulární výrazy za hranicemi grepu Jednoznakové regexp: sed, vi :1,$s/ˆn(.*n)$/[BOLD]n1[n/BOLD]/c Vysázeno v LAT E Xu p.13/1

Regulární výrazy za hranicemi grepu Jednoznakové regexp: sed, vi :1,$s/ˆn(.*n)$/[BOLD]n1[n/BOLD]/c Rozšířené regexp: awk určují řádky, kterých se operace týká používají se v nahrazování Vysázeno v LAT E Xu p.13/1

Regulární výrazy za hranicemi grepu Jednoznakové regexp: sed, vi :1,$s/ˆn(.*n)$/[BOLD]n1[n/BOLD]/c Rozšířené regexp: awk určují řádky, kterých se operace týká používají se v nahrazování V perlu - zabudováno do syntaxe $radek =~s/&[ˆ;]*;//g; if ($radek =~/<link>(.*?)<link>/) print("<a href="$1">$1</a><br>nn"); Vysázeno v LAT E Xu p.13/1

Reference Bezva věc tyhle regulární výrazy, kde najdu víc? Pavel Satrapa: Regulární výrazy http://www.kit.vslib.cz/ satrapa/docs/regvyr/regvyr.pdf Jeffrey E. F. Friedl: Mastering Regular Expressions http://marecek.kup.to/trade/productview/10650/369/ Visual regexp: program pro odlazování regulárních výrazů http://laurent.riesterer.free.fr/regexp/ Vysázeno v LAT E Xu p.14/1