Table of Contents
Tipy a triky
Úprava UTF-8 používajícího spřežky
- použít program
norm-utf8
:- norm-utf8
#!/usr/bin/env python import sys, unicodedata if __name__ == '__main__': if len(sys.argv) != 2: sys.exit(1) filename = sys.argv[1] f = open(filename, 'r') ori = unicode(f.read(), 'utf-8') res = unicodedata.normalize('NFC', ori).encode('utf-8') f.close print res,
- anebo utilitu
uconv
pro převod do NFC z NFDuconv -f utf8 -t utf8 -x nfc
Odstranění BOM
sed 's/^\xEF\xBB\xBF//'
nebo
tail --bytes=+4 text.txt
(pokud je BOM hned na začátku souboru)
Emacs
- dlouhé řádky:
M-x toggle-truncate-lines RET
Triky pro práci v bashi
- Sežer první řádek souboru, pokud je prázdný:
sed '1{/^$/d}'
- Sežer poslední řádek souboru, pokud je prázdný:
perl -i.bak -pe 'undef $/; s/\n\n$/\n/'
nebo
perl -i -pe "chomp if eof"
- Všechna písmena v souboru na malá:
cat <file> | sed 's/[[:upper:]]*/\L&/g'
Pokud máme pouze ASCII, funguje i toto:
cat <file> | tr '[:upper:]' '[:lower:]'
- Najdi a seřaď podle času:
find ./ -name zprh0503 -printf "%T@ %Tc %p\n" | sort -n
- Zobrazuj datum ve výpisu adresáře ve tvaru YYYY-MM-DD:
env TIME_STYLE="long-iso"
(nefungují pak ale aliasy)
- Zjištění
env
u běžícího procesu:- Nejdřív zjistit
PID
:ps faxu | grep bonito
- Přečíst proměnné:
cat /proc/$PID/environ | tr '\0' '\n' | sort
- Grepni
ANSI escape codes
(třeba změnu barvy):grep -P '\e\[7m \e\[27m'
grepne inverzní mezeru.
Perl
- sežrání nového řádku v jednořádkovém programu:
perl -pe 'undef $/; s/\n/ /g'
- utf-8 z commandliny:
PERLIO=:utf8 perl -pe...
anebo někdy stačí
perl -C -pe...
- celý file na upcase:
perl -pe '$_=uc'
- první písmeno na upcase:
perl -C -pe 's/^(.)/\u$1/g'
- v náhradě regexu použít proměnnou z bashe (dvojité uvozovky a \1 místo $1 v regexu):
for ff in *; do echo $ff; perl -i.bak -pe "s/(<doc) /\1 id=\"$ff\" /" $ff; done
- v dotazu použít sytémovou proměnnou:
perl -i.sav -pe "s:($SYN2020_PREFIX):\1/versions/$mydate/syn2020:" options.json
backreference
- odkaz na regex použitý dříve v dotazu:perl -pe 's/([A-Z]{2})\1/$1$1$1/'
- nematchující
backreference
- zde se musí použítlookeahead
alookbehind
; nezabírá pozici v regexu:perl -pe 's/ V[psq][FIMN][PS].{3}([1-3]).{10}(?!\1)....V//g'
23-místný tag,
(?!\1)
znamená nenásleduje \1 a pozice je přečtena teprve další tečkou.
Python
Vytvoření vlastní instalace
- Vytvoří se podadresář, do kterého se zkopíruje základní instalace:
python3 -m venv local_python
- Upraví se
.bashrc_profile
nebo.profile
, aby obsahovaly správné hodnoty proměnnýchPATH
aPYTHONPATH
:PATH=/home/skoumal/bin/local_python/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/syn2020/bin:/usr/local/syn2020/xml2standoff:/home/skoumal/bin PYTHONPATH=/home/skoumal/bin/local_python/lib/python3.10/site-packages
- Prostředí se musí aktivovat příkazem
source bin/local_python/bin/activate
před promptem se objeví
(local_python)
- Moduly se instalují takto:
python -m pip install pandas
Instalace pro MorphoDiTu
- Potřebujeme
python3.10
. Nemáme-li ho v systému, použijeme Davidův. - Environment vytvoříme v adresáři
/usr/loca/cs_tagger
.sudo bash -l /cnk/common/tools/mambaforge/bin/python3.10 -m venv cs_tagger
- Adresáři
/usr/local/cs_tagger
změníme vlastníka a vyskočíme z roota. - Aktivujeme prostředí a nainstalujeme tensorflow2.12
source bin/activate python -m pip install tensorflow==2.12
Instalace tensorflow pro celý systém
S novějšímy pythony to nejde, pro MorphoDiTu je třeba udělat vlastní instalaci (viz výše).
- Ve starších systémech fungoval tento postup:
- Současný postup:
- Nainstalujeme
python3
a modulnumpy
- Jako root nainstalujeme moduly:
sudo bash -l pip3 install tensorflow
Měl by se nainstalovat v
/usr/local/lib/python3.10/dist-packages/
. Máme-li vyšší verzi pythonu, je třeba (asi) nainstalovat nižší.
LaTeX, PS, PDF
- Konverze PS obrázku do PDF:
ps2pdf -dEPSCrop fig.ps
- Konverze PS obrázku do PNG:
pstoimg -type png -crop a -trans -interlace -aaliastext -antialias nerad.ps
- Lokální proměnné v Emacsu, aby se kompilovalo PDF:
%%% Local Variables: %%% TeX-PDF-mode: t %%% TeX-master: t %%% End:
- Posunutí nadpisu nahoru:
\usepackage{titling} \setlength{\droptitle}{-10em}
- Zvětšení zrcadla u článku:
\setlength{\topmargin}{-.5in} \setlength{\textheight}{10.1in} % \setlength{\textwidth}{6.5in} % \setlength{\oddsidemargin}{0in} % \setlength{\evensidemargin}{0in}
- Mezery mezi odstavci:
\setlength{\parskip}{0.25in}
ShareLaTeX
- Je třeba používat Chrome
keybindings
musí býtnone
- Není vidět zdrojový text:
- zkusit reload, návrat do seznamu projektů
- vymazat cache v Chromu
Samba na windows
- Přimountování:
mount -t cifs //192.168.0.202/Public /mnt/cibulka/PUBLIC -o user=****,password=****,workgroup=UAMKCR,vers=1.0
v případě, že to nejde, je třeba zkusit
user=DOMAIN/user
a/nebovers=2.0
. - Mountování ve
fstab
(s nastavením práv)://192.168.0.202/Public /mnt/cibulka/Public cifs rw,uid=1001,dir_mode=0777,file_mode=0777,user=****,password=****,workgroup=UAMKCR,vers=1.0 0 0