Ú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á...
Pavel 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í...
GNU 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
Karta 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
Programová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.
X36SIN: 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...
obsah
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...
1 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 ...
př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á...