V nasledujúcom článku niektoré uvidíme nástroje príkazového riadku používané na nájdenie zodpovedajúcich reťazcov alebo vzorov v textových súboroch. Tieto nástroje sa zvyčajne používajú v spojení s regulárnymi výrazmi, skrátenými ako REGEX, ktoré sú jedinečnými reťazcami popisujúcimi vyhľadávací vzor.
Regulárne výrazy sú vzory, ktoré sa používajú na nájdenie určitej kombinácie znakov v textovom reťazci. Regulárne výrazy poskytujú veľmi flexibilný spôsob vyhľadávania alebo rozpoznávania textových reťazcov. Aj keď v nasledujúcich riadkoch neuvidíme regulárne výrazy, použijeme vzory alebo reťazce.
Vyhľadajte reťazce alebo vzory z terminálu
Príkaz grep
Grep je skratka pre Globálna regulárna expresia tlače. Jedná sa o výkonný nástroj príkazového riadku, ktorý je užitočný pri hľadaní konkrétneho reťazca alebo vzoru v súbore. S grep budeme môcť využívať širokú škálu funkcií, napríklad také, ktoré nám pred časom v tomto blogu vysvetlil kolega.
Syntax použitia príkazu grep je dosť jednoduchá:
grep PATRON [RUTA AL ARCHIVO]
Napríklad na vyhľadanie reťazca „ubuntu„v súbore, ktorý v tomto príklade zavoláme text.txt, bez ohľadu na rozdiel medzi malými a veľkými písmenami, v termináli (Ctrl + Alt + T) budeme musieť vykonať iba príkaz:
grep -i Ubuntu texto.txt
Velenie sed
Smäd je skratka Editor streamu. Je to ďalší užitočný nástroj pre terminál, pomocou ktorého môžeme manipulovať s textom v súbore. Sed vyhľadáva, filtruje a nahrádza reťazce v danom súbore.
Príkaz sed štandardne vytlačí výstup v STDOUT (Štandardný výstup). To znamená, že výsledok vykonania sa namiesto uloženia do súboru vytlačí do terminálu.
Príkaz Sed možno použiť nasledovne:
sed -OPCIONES COMANDO [RUTA AL ARCHIVO]
Napríklad na nahradenie všetkých výskytov výrazu „Linux„v texte od“Linux', príkaz na použitie by bol tento:
sed 's/Linux/GnuLinux/g' texto.txt
Ak to, čo hľadáme, je presmerovať výstup do súboru namiesto jeho vytlačenia do terminálu, budeme používať znak presmerovania nasledovne:
sed 's/Linux/GnuLinux/g' texto.txt > salida.txt
Výstup príkazu sa uloží do súboru výstup.txt namiesto toho, aby sa tlačili na obrazovku.
Ak chcete zobraziť viac možností, môžete pozrite si manuálové stránky:
man sed
ack
Ack je rýchly nástroj príkazového riadku napísaný v Perle. Považuje sa to za priateľskú náhradu za utilitu grep, ktorý tiež generuje výsledky vizuálne atraktívnym spôsobom.
na nainštalovať ack v našom systéme budeme musieť vykonať v termináli (Ctrl + Alt + T):
sudo apt install ack
Príkaz Ack vyhľadáva v súbore alebo adresári riadky, ktoré obsahujú zhodu s kritériami vyhľadávania. Potom zvýraznite zodpovedajúci reťazec. Tento nástroj má schopnosť rozlišovať súbory na základe ich prípon.
Syntax príkazu Ack by bola podobná nasledujúcej
ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
Napríklad na vyhľadanie výrazu Linux v súbore by sme museli vykonať:
ack Linux texto.txt
Vyhľadávací nástroj je veľmi inteligentný a ak užívateľ nedodá žiadne súbory alebo adresáre, vyhľadá v aktuálnom adresári a podadresároch vyhľadávací vzor.
V nasledujúcom príklade nie je uvedený žiadny súbor ani adresár. Ack automaticky zistí dostupný súbor v adresári a vyhľadá zodpovedajúci vzor:
ack Linux
ripgrep
ripgrep je multiplatformový nástroj na vyhľadávanie vzorov regulárnych výrazov. Je rýchlejší ako všetky vyššie uvedené vyhľadávacie nástroje a rekurzívne vyhľadáva v adresároch vyhovujúce vzory. Umožňuje tiež vyhľadávať konkrétne typy súborov. V predvolenom nastavení ripgrep preskočí binárne súbory a skryté súbory / adresáre.
na nainštalovať ripgrep v systéme stačí spustiť v termináli nasledujúci príkaz (Ctrl + Alt + T):
sudo apt install ripgrep
Syntax pre použitie ripgrep je dosť jednoduchá:
rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
Keby sme chceli hľadať reťazec 'Linux„v súboroch umiestnených v aktuálnom adresári budeme musieť vykonať iba príkaz:
rg Linux
Používatelia môžu vidieť viac možností man stránky:
man rg
Strieborný hľadač
na nainštalujte tento nástrojV Ubuntu budeme musieť otvoriť iba terminál (Ctrl + Alt + T) a napísať príkaz:
sudo apt install silversearcher-ag
Silver Searcher je cross-platformový open source vyhľadávací nástroj podobný ack, ale s dôrazom na rýchlosť. Uľahčuje vyhľadanie konkrétneho reťazca v súboroch v čo najkratšom čase. Syntax, ktorá sa má použiť, by bola:
ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo
Napríklad na vyhľadanie výrazu „Linux„v spise text.txt, museli by sme do terminálu napísať (Ctrl + Alt + T):
ag Linux texto.txt
Ak si chcete pozrieť viac možností, navštívte stránku man stránky:
man ag
Existuje iba niekoľko najbežnejšie používaných nástrojov príkazového riadku na vyhľadávanie, filtrovanie a manipuláciu s textom v systéme Linux.