Úvod do UNIXu - Okruh č. 4 - vi, regulární výrazy, grep a sed
Transkript
Okruh č.4 Úvod do UNIXu Okruh č. 4 - vi, regulární výrazy, grep a sed Jakub Galgonek verze 1.0.0-r2 inspirováno materiály Davida Hokszy Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Textové editory vi(m) prastarý textový editor (1976) dostupný v podstatě na každém UNIXovém systému velmi mocný pro začátečníka dosti neintuitivní nutnost pamatovat si mnoho zkratek http://www.kit.tul.cz/ satrapa/docs/vim/ nano relativně intuitivní obsahuje vestavěnou nápovědu mcedit součást Midnight Commanderu velmi jednoduchý Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Editor vim vim vim [-R] [+[N]] [+/vzor] [soubor] -R read-only (přepisuje pouze je-li „přinucenÿ) +N kurzor bude umístěn na N-tý řádek + kurzor bude umístěn na poslední řádek +/vzor kurzor bude umístěn na první výskyt vzoru Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Editor vi – schéma práce Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Editor vi - pohyb [N]k posun o N řádek nahoru [N]j posun o N řádek dolů [N]l posun o N znaků dopředu [N]h posun o N znaků dozadu [N]G posun na N-tou (poslední) řádku [N]H posun na N-tou (první) řádku na obrazovce [N]L posun na N-tou (poslední) řádku na obrazovce od konce Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Editor vi - značky mZ označení pozice znakem Z `Z skok na místo pozice Z 'Z skok na začátek řádku pozice Z `` skok na místo před posledním skokem '' skok na začátek řádku před posledním skokem značky A-Z globální značky a-z lokální značky (platí jen v rámci jednoho souboru) Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Editor vi – přechod do vstupu i zahájení editace před kurzorem a zahájení editace za kurzorem I zahájení editace na začátku aktuálního řádku A zahájení editace na konci aktuálního řádku o zahájení editace po vložení řádku před aktuální řádek O zahájení editace po vložení řádku za aktuální řádek s zahájení editace po smazání znaku S zahájení editace po smazání obsahu řádku C zahájení editace po smazání konce řádku R zahájení editace v replace módu Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Editor vi – mazání x smazání textu pod kurzorem X smazání textu před kurzorem D smazání do konce řádku dd smazání řádku dw smazání slova smazaný text se ukládá do očíslovaných bufferů Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Editor vi – práce s buffery [N]p vložení N opakování (jednoho) bufferu za kurzor/řádek [N]P vložení N opakování bufferu před kurzor/řádek "np vložení n-tého posledního bufferu za kurzor/řádek "nP vložení n-tého posledního bufferu před kurzor/řádek "zp vložení bufferu pojmenovaného z za kurzor/řádek "zP vložení bufferu pojmenovaného z před kurzor/řádek ["z]yy vložení řádky do bufferu (pojmenovaného z) ["z]ym vložení textu od kurzoru do místa daného příkazemm do bufferu (pojmenovaného z) Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Editor vi – další . . . . opakování posledního příkazu u zruší poslední příkazy J spojení řádek ~ zamění velké a malé písmeno pod kurzorem % skok na odpovídající závorku rZ změní znak pod kurzorem za Z ^g info o poloze a stavu editovaného souboru z- posunutí (scroll) aktuálního řádku dolu z<LF> posunutí (scroll) aktuálního řádku nahoru Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Editor vi – hledání a nahrazení /vzor nalezení vzoru – regulárního výrazu (pohyb pomocí n) :s/vzor/text/ nahradit výskyt vzor za text :s/vzor/text/g nahradit každý výskyt vzor (na aktuální řádce) za text :s/vzor/text/gc nahradit každý výskyt vzor (na aktuální řádce) za text a každý potvrdit (c = confirmation) Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Editor vi - ukončení :q[!] ukončení bez uložení byly-li provedeny změny, pak ! vynutí ukončení bez uložení :x[!] [soubor] ukončení s uložením byli-li provedeny změny při read-only, pak ! vynutí ukončení :w[!] [soubor] uložení byli-li provedeny změny při read-only, pak ! vynutí uložení Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Regulární výrazy umožňují specifikovat množinu řetězců slouží k vyhledání textu odpovídajícího regulárnímu výrazu (vzoru) nahrazení textu odpovídajícího regulárnímu výrazu jiným textem specifikován pomocí znaků a metaznaků metaznak znak se speciálním významem (tzv. metavýznamem) metavýznam může být potlačen (pomocí zpětného lomítka - ∖) ve zvláštních případech mohou některé znaky stejným způsobem metavýznam naopak získat důvodem tohoto chování je zpětná kompatibilita Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Regulární výrazy - jednoduché vyhledávání z znak z . libovolný znak [z1 z2 z3 z4 ] znak z uvedené množiny [^z1 z2 z3 z4 ] libovolný znak mimo uvedenou množinu [a-zA-Z] libovolný znak z daných rozsahů ∖z ruší metavýznam znaku z zřetězení ∖| operátor „neboÿ ∖(∖) operátor přednosti Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Regulární výrazy - skupiny znaků ∖w znaky „slovaÿ (ekvivalentní zápisu [a-zA-Z0-9]) ∖W jakýkoliv znak kromě znaků „slovaÿ [:alnum:] alfanumerický znak (uvádí se jako součást []) [:space:] mezera (uvádí se jako součást []) [:digit:] číslice (uvádí se jako součást []) Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Regulární výrazy- kvantifikátory a buffery * libovolně-krát (i vůbec) ∖? maximálně jedenkrát ∖+ alespoň jedenkrát ∖{n∖} právě n-krát ∖{m,∖} alespoň m-krát ∖{m,n∖} alespoň m-krát, maximálně alespoň n-krát kvantifikátory jsou hladové (zachytí maximální možnou odpovídající sekvenci) ∖(vzor∖) uložení textu odpovídajícího vzoru do bufferu ∖N použití N-tého bufferu Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Regulární výrazy - hranice ^ začátek řádku $ konec řádku ∖b začátek nebo konec slova ∖< začátek slova ∖> konec slova Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Text search utility grep grep, egrep [e]grep [-Enrvwx] [-e] vzor [soubor]... vyhledání regulárního výrazu v řádcích -E zapíná podporu rozšířených regulárních výrazů (= egrep) -n před každou řádku vypisuje její pořadové číslo -r adresář rekurzivně -v vyhledá řádky neobsahující slovo vyhovující podmínce -w shoda musí být celé slovo -x vyhledá řádky které přesně (jako celek) vyhovují podmínce Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Stream editor sed sed sed [-r] skript [soubor]... čte vstupní proud (defaultně po řádcích) a transformuje ho pomocí na výstupní -r zapíná podporu rozšířených regulárních výrazů Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Stream editor sed - nahrazování nahrazení prvního výskytu vzoru za text sed 's/vzor/text/' [soubor]... nahrazení všech výskytů vzoru za text sed 's/vzor/text/g' [soubor]... vypsání pouze řádků obsahujících vzor (po substituci) sed -n 's/vzor/text/p' [soubor]... -n na výstup implicitně nejdou žádné řádky vypsání řádků obsahujících vzor do souboru (po substituci) sed 's/vzor/text/w výstupní soubor' [soubor]... akce lze kombinovat Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Stream editor sed - skripty složení příkazů sed -e 's/a/A/' -e 's/b/B/' [soubor]... smazání řádky se vzorem sed '/vzor/ d' [soubor]... transformace sed 'y/abc/ABC' [soubor]... přidání řádky před/za/místo řádky s výrazem sed '/vzor/ i new line text' [soubor]... sed '/vzor/ a new line text' [soubor]... sed '/vzor/ c new line text' [soubor]... Jakub Galgonek Úvod do UNIXu Okruh č.4 Textový editor vim Regulární výrazy Text search utility grep Stream editor sed Stream editor sed - omezení řádků omezení na jednu řádku sed 'n akce' [soubor]... sed '14 s/vzor/text/' [soubor]... omezení na množinu řádků sed 'n,m akce' [soubor]... sed '4,100 s/vzor/text/g' [soubor]... omezení řádek výrazy sed sed sed sed '/start/,/stop/ akce' [soubor]... '/vzor/ akce' [soubor]... '/start/,/stop/ s/vzor/text/' [soubor]... '/start/,/stop/ d' [soubor]... Jakub Galgonek Úvod do UNIXu
Podobné dokumenty
Nainstaloval jsem a jak dál?
su uživatel – dynamická změna uživatele cd, ls, ls -la – změna adresáře, výpis souborů locate – hledání souborů mc – souborový manažer, ftp klient, textový editor ./program – spustí program v aktuá...
VícePavel Satrapa
Program sed je neinteraktivní editor. Zadáte mu sadu příkazů a on podle nich zpracuje vstupní text. De facto se jedná o nástroj pro vytváření editačních filtrů. Regulární výrazy se v sedu vyskytují...
VíceGNU Emacs – Referenční karta
přidat globální zkratku přidat lokální zkratku přidat globální expanzi pro zkratku přidat lokální expanzi pro zkratku expandovat zkratku
VíceKarta pro přežití s GNU Emacsem
doplň dynamicky předchozí slovo C-z ikonizuj (přeruš) Emacs M-x revert-buffer nahraď text editovaného souboru tímtéž souborem z disku
VíceProgramování v Linuxu
přesměrujeme do speciálního zařízení „/dev/null“. Toto speciální zařízení nedělá nic jiného, než že zahodí veškerý standardní vstup.
VíceX36SIN: Softwarové inženýrství
tituly p ed = [ pan | paní | sle na | ing. | RNDr. | doc. | prof. | … ] první jméno = jméno p íjmení = jméno prost ední jméno = jméno jméno = velké písmeno + 1{ malé písmeno } písmeno = [ malé písm...
Víceobsah
1.1.1 Vytvoření frekvenčního slovníku (v Manatee/Bonitu) 1.1.2 Disperze výrazů 1.1.3 Kolokace a koligace 1.1.4 Testy kolokační významnosti – asociační míry 1.1.4.1 Mi-score – vzájemná informace 1.1...
Více1 na stránku (česky)
Enter ... další řádka (* - k nastaví default) s, f, b ... přeskoč k řádek, stránek, stránek zpět (*) /regexp, n ... hledej k-tý výskyt řetězce (*) ’ ... návrat na začátek hledání !cmd, v ... start ...
Vícepřiloženou kapitolu - Vilem Vychodil
Čtenářům předkládám průvodce problematikami práce s operačnı́m systémem GNU/Linux. Text je orientován výlučně uživatelsky, nenı́ v něm napřı́klad rozebı́rána instalace nebo sprá...
Více