V následujícím článku některé uvidíme nástroje příkazového řádku používané k nalezení odpovídajících řetězců nebo vzorů v textových souborech. Tyto nástroje se obecně používají ve spojení s regulárními výrazy, zkráceně jako REGEX, což jsou jedinečné řetězce popisující vyhledávací vzor.
Regulární výrazy jsou vzory používané k nalezení určité kombinace znaků v textovém řetězci. Regulární výrazy poskytují velmi flexibilní způsob vyhledávání nebo rozpoznávání textových řetězců. Ačkoli v následujících řádcích neuvidíme regulární výrazy, použijeme vzory nebo řetězce.
Vyhledejte řetězce nebo vzory z terminálu
Příkaz Grep
Grep je zkratka pro Globální tisk regulárních výrazů. Jedná se o výkonný nástroj příkazového řádku, který je užitečný při hledání konkrétního řetězce nebo vzoru v souboru. S grep budeme moci používat širokou škálu funkcí, jako jsou ty, které nám před chvílí vysvětlil kolega v tomto blogu.
Syntaxe pro použití příkazu grep je velmi jednoduchá:
grep PATRON [RUTA AL ARCHIVO]
Například k vyhledání řetězce 'ubuntu„v souboru, který v tomto příkladu zavoláme text.txt, aniž bychom zohlednili rozdíl mezi velkými a malými písmeny, v terminálu (Ctrl + Alt + T) budeme muset provést pouze příkaz:
grep -i Ubuntu texto.txt
Velení sed
Žízeň je zkratka Editor streamů. Je to další užitečný nástroj pro terminál, se kterým můžeme manipulovat s textem v souboru. Sed vyhledává, filtruje a nahrazuje řetězce v daném souboru.
Příkaz sed ve výchozím nastavení vytiskne výstup STDOUT (Standardní výstup). To znamená, že výsledek provedení se vytiskne do terminálu namísto uložení do souboru.
Příkaz Sed lze použít následovně:
sed -OPCIONES COMANDO [RUTA AL ARCHIVO]
Například nahradit všechny výskyty 'Linux'in a text by'Linux', příkaz k použití by byl následující:
sed 's/Linux/GnuLinux/g' texto.txt
Pokud to, co hledáme, je přesměrovat výstup do souboru namísto tisku do terminálu, použijeme znaménko přesměrování následovně:
sed 's/Linux/GnuLinux/g' texto.txt > salida.txt
Výstup příkazu se uloží do souboru output.txt namísto tisku na obrazovce.
Chcete-li zobrazit více možností, můžete podívejte se na manuálové stránky:
man sed
ack
Ack je rychlý nástroj příkazového řádku napsaný v Perlu. Považuje se to za přátelskou náhradu za nástroj grep, který také generuje výsledky vizuálně atraktivním způsobem.
na nainstalovat ack v našem systému budeme muset provést v terminálu (Ctrl + Alt + T):
sudo apt install ack
Příkaz Ack prohledá v souboru nebo adresáři řádky, které obsahují shodu s kritérii vyhledávání. Poté zvýrazněte odpovídající řetězec. Tento nástroj má schopnost rozlišovat soubory podle jejich přípon.
Syntaxe příkazu Ack by byla něco jako následující
ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
Například k vyhledání výrazu Linux v souboru bychom museli provést:
ack Linux texto.txt
Vyhledávací nástroj je docela chytrý a pokud uživatel nedodá žádné soubory nebo adresáře, prohledá aktuální adresář a podadresáře pro vyhledávací vzor.
V následujícím příkladu není poskytován žádný soubor ani adresář. Ack automaticky detekuje dostupný soubor v adresáři a hledá odpovídající vzor:
ack Linux
ripgrep
ripgrep je multiplatformní nástroj pro vyhledávání vzorů regulárních výrazů. Je rychlejší než všechny výše uvedené vyhledávací nástroje a rekurzivně hledá adresáře, aby nalezly odpovídající vzory. Umožňuje také vyhledávat konkrétní typy souborů. Ve výchozím nastavení přeskočí ripgrep binární soubory a skryté soubory / adresáře.
na nainstalovat ripgrep v systému musíte v terminálu spustit následující příkaz (Ctrl + Alt + T):
sudo apt install ripgrep
Syntaxe pro používání ripgrep je velmi přímočará:
rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
Pokud bychom chtěli hledat řetězec 'Linux'v souborech umístěných v aktuálním adresáři budeme muset provést pouze příkaz:
rg Linux
Uživatelé mohou zobrazit více možností manuálové stránky:
man rg
Stříbrný hledač
na nainstalujte tento nástrojV Ubuntu budeme muset otevřít pouze terminál (Ctrl + Alt + T) a napsat příkaz:
sudo apt install silversearcher-ag
Silver Searcher je multiplatformní, otevřený vyhledávací nástroj podobný ack, ale s důrazem na rychlost. Usnadňuje hledání konkrétního řetězce v souborech v co nejkratším čase. Syntaxe, která se má použít, by byla:
ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo
Chcete-li například vyhledat „Linux've složce text.txt, museli bychom napsat do terminálu (Ctrl + Alt + T):
ag Linux texto.txt
Chcete-li zobrazit další možnosti, můžete se podívat na manuálové stránky:
man ag
Toto jsou jen některé z nejčastěji používaných nástrojů příkazového řádku pro vyhledávání, filtrování a manipulaci s textem v systému Linux.