abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 19:11 | Zajímavý projekt

Neziskové technologické konsorcium Linux Foundation a společnosti Grillo a IBM společně představili projekt OpenEEW (GitHub) neboli open source systém včasného varování před zemětřeseními (earthquake early-warning).

Ladislav Hagara | Komentářů: 0
dnes 16:33 | Nová verze

Byla vydána nová verze 5.1.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 235 vývojářů. Provedeno bylo více než 2 500 commitů. Přehled úprav a nových vlastností v seznamu změn.

Ladislav Hagara | Komentářů: 0
dnes 16:11 | Nová verze

Byla vydána nová verze 20.08.0 KDE Aplikací (KDE Applications). Přehled novinek i s náhledy v oficiálním oznámení (sk), v kompletním seznamu změn a na stránce s dalšími informacemi.

Ladislav Hagara | Komentářů: 0
včera 13:55 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice zveřejnila čtyřiapadesátistránkovou výroční zprávu za rok 2019. K dispozici je v nízkém (6,4 MB) i vysokém (53,2 MB) rozlišení. Nadace také publikovala statistiky související s LibreOffice 7.0. Před týdnem vydaná verze byla z oficiálních stránek stažena již 423 tisíckrát.

Ladislav Hagara | Komentářů: 0
včera 13:33 | Zajímavý článek

Když se řekne „jmenný prostor“ hodně lidí si představí xmlns v XML nebo balíčky v Javě odvozené od internetových domén. Jmenné prostory jsou ale obecný koncept se kterým se setkáme prakticky všude a odvozovat je můžeme i jinak. Článek Jména a jmenné prostory dává toto téma do souvislostí a ukazuje různé způsoby tvorby jmenných prostorů. Nahlédneme i do zajímavého světa RDF a ukážeme si, jak vytvářet URI, která budou globálně unikátní jednou provždy.

xkucf03 | Komentářů: 3
včera 08:00 | Nová verze

Po více než čtyřech měsících vývoje od vydání verze 5.4 byla vydána nová verze 5.5 svobodného open source redakčního systému WordPress. Kódové označení Eckstine bylo vybráno na počest amerického jazzového zpěváka Billy Eckstine.

Ladislav Hagara | Komentářů: 0
včera 07:00 | Nová verze

Po půl roce vývoje od vydání verze 1.14 byla vydána nová verze 1.15 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
včera 01:10 | Nová verze
Vyšla nová verzia Firefox 79.0.3 pre android. Prináša zmenené rozhranie (práca s taby, vytváranie kolekcií stránok a možnosť mať hlavnú lištu už aj dole na obrazovke). V backhand zaujme používateľa, že odsek vie zalamovať podľa šírky obrazovky. (viac)
debian+ | Komentářů: 15
11.8. 18:00 | Komunita

Mitchell Baker v příspěvku Changing World, Changing Mozilla na blogu Mozilly píše o měnícím se světě a měnící se Mozille aneb výrazné restrukturalizaci společnosti Mozilla Corporation. Propuštěno bude 250 zaměstnanců.

Ladislav Hagara | Komentářů: 45
11.8. 17:00 | Zajímavý článek

O novince Swap na ZRAM, jež se objeví ve Fedoře 33, píše Vojtěch Trefný na MojeFedora.cz. Ve výchozí instalaci Fedory bude swap, neboli odkládací prostor, vytvořen již pouze na ZRAM, neboli komprimován v paměti.

Ladislav Hagara | Komentářů: 21
Dokážete si představit, že by váš hlavní počítač (desktop, notebook) byl v současné době založen na architektuře jiné než x86 (x86_64)? Například ARM, POWER, RISC-V,…
 (13%)
 (12%)
 (56%)
 (15%)
 (5%)
Celkem 253 hlasů
 Komentářů: 15, poslední dnes 14:20
Rozcestník
Nástroje

Vyhledávání v Linuxu

Hledat můžeme lecos a leckde. Následující poznámky jsou určeny těm co se chtějí obejít bez klikacích pomůcek a rychle a efektivně vyhledávat na příkazovém řádku. Nejde o komplexní referenční příručku, spíš jen o několik základních chvatů.

Použití příkazu grep

Ačkoliv příkaz grep lze přímo použít pro vyhledávání v obsahu souborů já osobně jsem se jej nejdříve naučil používat se spojení s příkazem cat. Ten nedělá nic jiného, než že vypíše obsah souboru na standardní výstup - neboli terminál - a pomocí grep lze odfiltrovat řádky s požadovaným obsahem. Je-li následující spojení aplikováno na textový soubor s názvem soubor.txt, tak se ve výpisu objeví pouze ty řádky, které obsahují textový řetězec text

cat soubor.txt | grep text

Pokud se chceme obejít bez příkazu cat, pak by to vypadalo asi takto:

grep 'text' soubor.txt

Užitečný je také přepínač -C počet, který kromě nalezené řádky zobrazí i okolní řádky a nálezy oddělí pomocí řádky --. Například

grep -C 2 test soubor.txt
vypíše kromě každé řádky obsahující slovo test také dvě řádky nad ní a dvě řádky pod ní, což se hodí, protože často nelze z jedné řádky zjistit potřebné informace. A na závěr malé vylepšení, nepříliš známé. Grep totiž umí hledaný řetězec také obarvit. Výchozí barvou je červená, změnit barvu můžeme přes proměnnou GREP_COLOR

grep --color 'text' soubor.txt

Síla regulárního výrazu

Efektivita hledání se projeví naplno při použití regulárních výrazů. Ty můžeme použít jednak při určení souborů které mají být prohledány, ale také při určení hledaného řetězce

grep -E "(první|druhý)" *.txt

Uvedený příklad prohledá všechny soubory (v aktuálním adresáři) s příponou txt a vypíše z nich ty řádky které obsahují bud textový řetětězec "první" nebo "druhý". Pokud bychom chtěli prohledávat pouze některé typy souborů, pak lze použít direktiv --include a --exclude. Pro rekurzívní prohledávání vnořených adresářů se použije parametr -r

grep --color -r --include=*.txt linux /usr/local/src

Příkaz uvedený v příkladu tedy prohledá všechny soubory s příponou txt v adresáři /usr/local/src a níže, a bude hledat řetězec "linux" který pak na výstupu obarví.

Hledání jména souboru podle řetězce

Občas se stane, že potřebujeme najít nějaký soubor obsahující nám známý kus textu. K tomuto účelu se dá použít mimo bash skripty i samotný grep. Pokud např. chceme najít všechny soubory obsahující "PATH" v /etc, můžeme to udělat následovně:

grep -H "PATH" /etc/*

V kombinaci s rekurzívním vyhledáváním ušetří hodně času. Zajímavé jsou také parametry -l a -L.

Použití příkazu sed

V některých případech můžeme zase s výhodou využít příkazu sed. Například tehdy, chceme-li si vypsat jenom určitou část souboru, vymezenou bud textovým řetězcem, nebo číslem řádku.

sed -n "15266,15269 p" zdroj.txt

Nám vypíše obsah řádků 15266 až 15269. Chybí-li druhá hodnota řádku, nebo je menší než první, tak se vypíše pouze obsah řádku adresovaného první hodnotou. Kromě čísla řádku můžeme adresovat vypisovaný blok textovým řetězcem.

sed -n "/začátek/,/konec/ p" zdroj.txt

Vypíše vše mezi prvním řádkem na kterém se vyskytne řetězec "začátek" a řádkem na kterém se vyskytne řetězec "konec"

Chceme-li hledat nikoliv v obsahu souborů, ale přímo název nějakého souboru či adresáře, pak využijeme příkazu find.

Použití příkazu find

Příkaz find spuštěný bez parametrů, obvykle začne vypisovat obsah aktuálního odresáře, včetně podadresářů. Tento výpis pak můžeme filtrovat přes grep podobně, jako bychom vypisovali obsah souboru příkazem cat

find | grep txt

nám vypíše soubory (včetně jejich cesty), které mají v cestě, nebo svém názvu textový řetězec "txt". Pokud nám jde jen o soubory které končí tímto řetězcem, tak za něj přidáme znak "$"

find | grep 'txt$'

Příkaz find však má sám o sobě velice široké možnosti nastavení vyhledávacích parametrů a není nutné jeho výstupy filtrovat přes grep. Tak například:

find /home/*/.mozilla/firefox/*.default/ -type f -name "*lock"

Prohledá adresáře s nastavením firefoxu všech uživatelů v adresáři home a zkontroluje zda se v nich vyskytuje soubor který by končil řetězcem "lock". Pokud na takový narazí, tak jej i s cestou vypíše.

Kombinace těchto příkazů dávají v shellu netušené možnosti, jaké žádný klikací nástroj nemá (a ani nemůže mít). Pro další studium odkazuji na manuálové stránky.

Související dokumenty

Grep - příklady (externí dokument)
Regulární výrazy a grep (externí dokument)
Možnosti grepu (externí dokument)
Sed - příklady (externí dokument)

Dokument vytvořil: Aleš Kapica, 16.5.2006 16:19 | Poslední úprava: Jiří J., 7.9.2007 14:53 | Další přispěvatelé: MiK, regnarg | Historie změn | Zobrazeno: 31890×

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.