Úvod do UNIXu - Okruh č. 4 - vi, regulární výrazy, grep a sed

Transkript

Úvod do UNIXu - Okruh č. 4 - vi, regulární výrazy, grep a sed
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?

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íce

Pavel Satrapa

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

Více

GNU Emacs – Referenční karta

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

Více

Karta pro přežití s GNU Emacsem

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

Více

Programování v Linuxu

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.

Více

X36SIN: Softwarové inženýrství

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

Více

obsah

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

Více

1 na stránku (česky)

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

Více

přiloženou kapitolu - Vilem Vychodil

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

Více