-
spočítejte kolik je v adresáři /bin symbolickych linku
ls -l /bin | grep ^l | wc –l
-
souboru kalendar.pl nastavte práva tak, aby ho uživatel mohl spouštět spusťte:
kalendar.pl 2023 a zkontrolujte jestli se vytvořil soubor kalendar2023.html
ze souboru kalendar.pl vytvořte soubor kal.pl, který bude mít stejný obsah, ale
nebude obsahovat komentáře (komentář je na řádku, který začíná znakem #)
grep -v ^\# kalendar.pl > kal.pl
chmod u+x kal.pl
nastavte kal.pl jako spustitelný a opět vyzkoušejte jestli funguje
kal.pl 2023
...proč nefunguje?
grep -v \#[^\!] kalendar.pl > kal.pl
chmod u+x kal.pl
znovu zkuste spustit
kal.pl 2023
a
kal.pl 2024
vytvořte si symbolický link na /usr/html/vaše uživatelské jméno s názvem public_html tj.
cd
ln -s /usr/html/username ./public_html
soubory kalendar2023.html a kalendar2024.html si zkopírujte do ~/public_html/
v tomto adresáři nastavte těmto souborům právo pro čtení pro všechny a pak se podívejte na:
http://www.karlin.mff.cuni.cz/~vase_uzivatelske_jmeno/kalendar2023.html
resp.
http://www.karlin.mff.cuni.cz/~vase_uzivatelske_jmeno/kalendar2024.html
-
najít v souboru phones.txt všechny lidi z karlína (víme, že jejich telefon začíná 32 nebo 33)
egrep 3\[23\]\[0-9\]\{2\} phones.txt
anebo ve vim
/3[23][0-9]\{2\}
-
v souboru mereni.txt najít všechna čísla, která jsou uvedena na více než dvě desetinná místa
egrep \[0-9\]\+\.\[0-9\]\{2,10\} mereni.txt
anebo ve vim
/[0-9]\+\.[0-9]\{2,10\}
-
v souboru phones.txt najít takové lidi, kteří jsou členy více než jednoho pracoviště (pracoviště je velkými písmeny)
egrep [A-Z]\{2,7\},\ [A-Z]\{2,7\} phones.txt
anebo ve vim
\<[A-Z]\+\>\(, \+\<[A-Z]\+\>\)\{1,2\}
-
zjistěte, kolik na mff pracuje lidí jejihž křestní jméno začíná stejnym písmenem jako jejich příjmení
grep '^\([A-Z]\)[a-z]*, \1' phones.txt
anebo ve vim
/^\([A-Z]\)[a-z]*, \1
-
v souboru seznam.txt najděte človeka jehož příjmení je totožné s křestním jménem
grep '^\([A-Z][a-z]*\) \1,' seznam.txt
anebo ve vim
/^\([A-Z][a-z]*\) \1,
-
v souboru barva_kouzel.htm najít všechny řetězce v uvozovkách (jen vim)
/".*"
!! špatně viz.ř. 125
/"[^"]*"
Vyhledávání i "přes" konec řádku
/"[^"]*\n[^"]*"
- v souboru phones.txt zaměnit všechny výskyty jména Jiri za jiri
%s/Jiri/jiri/g
to je ale špatně, viz. ř. 722 Jirina ...
%s/Jiri␣/jiri␣/g
to samé pro sed
cat phones.txt | sed 's/Jiri␣/jiri␣/g' > ...
-
v souboru phones.txt (Jmeno, Prijmeni ...neco...) zaměnit Jméno a Příjmení
%s/^\([A-Z][a-z]*\),␣\([A-Z][a-z]*\)\(.*\)/\2,␣\1\3
to samé pro sed
sed 's/^\([A-Z][a-z]*\),␣\([A-Z][a-z]*\)\(.*\)/\2,␣\1\3/' phones.txt
-
soubor phones.txt upravit tak, aby na prvním místě bylo pracoviště (navíc - pro jednoduchost - to poslední)
budeme vyhledávat "shluk" velkých písmen - mohl by nám dělat problém titul "RNDr." ... dočasně ho přejmenujeme na "rndr"
%s/RNDr/rndr/g
%s/^\(.*\)\([. ]\)\([A-Z]\{2,6\}\)\(.*\)$/\3 \1\2\3\4
%s/(rndr)/RNDr/
anebo, snadněji (v tomto případě budeme naopak brát - pro jednoduchost - první pracoviště)
zkratka pracoviště začíná vždy na 49. znaku tedy:
%s/^\(.\{48\}\)\([A-Z]\{2,6\}\)\(.*\)$/\2 \1\2\3
-
soubor seznam4.txt (ve formátu Jmeno Prijmeni rok) setřiďte podle roku, výsledný formát by měl být stejný jako vstupní
%s/^\(.*\)␣\([0-9]\{4\}\)$/\2␣\1␣\2
%! sort
%s/.....//
-
soubor ls.txt "upravit" aby se dal "rozsekat" za pomoci příkazu cut (tzn. jednu a více mezer zaměnit za ^I - tabelátor)
%s/ \+/^I/g
-
v souboru htm2tex.txt jsou některá slova zvýrazněna (pomocí HTML syntaxe <B>slovo</B> nebo <b>slovo</b>)
upravte tento soubor tak, aby tato slova byla zvýrazněna pomocí LaTeXové sekvence \textbf{slovo}
%s/<[Bb]>\([^<]\+\)<\/[bB]>/\\textbf{\1}/g
-
Zkopírujte si soubor /usr/html/NMIN266/4/soubory do ~/NMIN266 a otevřete si tento soubor ve vim
zrušte vše od ␣document resp. ␣image až na konec řádku
:%s/␣[di].*$//
anebo
:%s/␣[a-z].*$//
to samé v sed
sed 's/␣[di].*$//' soubory
anebo
sed 's/␣[a-z].*$//' soubory
Vypište jen jména souborů typu soubory typu PDF
grep PDF soubory | sed 's/:.*$//'
-
Podívejte se na úlohu 1. z 7.3. viz. Cvičení 7.3.2024 - dokážete ji nyní zpracovat ještě efektivněji?