Fórum Ubuntu CZ/SK
Ostatní => Tipy a triky pro Linux => Téma založeno: juwa2 27 Února 2023, 09:23:57
-
Pokud mám v nějaké složce mnoho skriptů (libovolných), k jejich prohledávání (např. hledám nějaký výraz který potřebuji upravit a nevím přesně ve kterém skriptu je) používám Recoll.
Nyní ale mám jednu python aplikaci tvořenou cca stovkou python3 skriptů ale Recoll je neindexuje/nevidí. A prohledávat to po jednom ručně se mi tedy opravdu nechce... :-[
Zjistil jsem, že Recoll vidí/indexuje python skripty buď s koncovkou .py nebo shebangem (https://cs.wikipedia.org/wiki/Shebang_(Unix))
#!/usr/bin/python
Jejich mimetyp je text/x-python
Zatímco ty moje skripty jsou bez přípony a mají shebang
#!/usr/bin/python3 nebo #!/usr/bin/python3.8
Jejich mimetyp je text/x-python3 který ale Recoll "nezná" a proto soubory ignoruje.
Po bližším prozkoumání souborů ve sl. /usr/share/recoll/examples jsem našel řešení: Do souboru
~/.recoll/mimeconf
přidat řádky
[index]
text/x-python3 = execm rclpython.py
[icons]
text/x-python3 = text-x-python
Nakonec Recoll restartovat a obnovit rejstřík. Možná bude třeba sestavit rejstřík znovu (Soubor > Sestavit rejstřík znovu).
Od teď už bude Recoll python3 skripty "znát" a indexovat. :)
Přidávat řádky do hlavní konfigurace v /usr/share/recoll/examples/mimeconf vhodné není - po každé aktualizaci aplikace by se to totiž muselo dělat znovu.
-
Jsem nevěděl, že něco takového existuje. Já osobně používám jednoduchou funkci přiincludovanou k .bashrc:
najdi() {
local adresa=$1
shift 1
find $adresa -type f | xargs grep -Hs "$@"
unset adresa
}
Použití:
najdi složka výraz
Výstup:
relativní adresa souboru:nalezený řádek
Příklady:radek@Arch-ThinkPad bashe]$ najdi . Erika
./cs_CZ.txt:# 0204=Erika
[radek@Arch-ThinkPad bashe]$ najdi . "na cosi"
./hodnoty:buk="kuk na cosi"
[radek@Arch-ThinkPad bashe]$ najdi . "kuk na"
./hodnoty:ahoj="kuk na strejdu"
./hodnoty:buk="kuk na cosi"
kde tečka znamená aktuální složku.