GNU/Linux >> Znalost Linux >  >> Linux

6 nejlepších nástrojů CLI pro vyhledávání dat ve formátu prostého textu pomocí regulárních výrazů

Tato příručka vás provede některými z nejlepších nástrojů příkazového řádku, které se používají k vyhledávání odpovídajících řetězců nebo vzorů v textových souborech. Tyto nástroje se obvykle používají spolu s regulárními výrazy – zkráceně REGEX – což jsou jedinečné řetězce pro popis vyhledávacího vzoru.

Bez dlouhého otálení se do toho vrhneme.

1. Příkaz Grep

Na prvním místě je nástroj grep – což je zkratka pro Global Regular Expression Print , je výkonný nástroj příkazového řádku, který se hodí při hledání konkrétního řetězce nebo vzoru v souboru.

Grep je standardně dodáván s moderními distribucemi Linuxu a poskytuje vám flexibilitu pro vrácení různých výsledků vyhledávání. S grep můžete provádět širokou škálu funkcí, jako například:

  • Hledejte řetězce nebo odpovídající vzory v souboru.
  • Hledejte řetězce nebo odpovídající vzory v souborech Gzip.
  • Spočítejte počet shod řetězců.
  • Vytiskněte čísla řádků obsahujících řetězec nebo vzor.
  • Rekurzivně hledejte řetězec v adresářích.
  • Proveďte zpětné vyhledávání (tj. zobrazte výsledky řetězců, které neodpovídají kritériím vyhledávání).
  • Při hledání řetězců ignorujte rozlišení malých a velkých písmen.

Syntaxe pro použití grep příkaz je docela jednoduchý:

$ grep pattern FILE

Chcete-li například vyhledat řetězec ‚Linux “ v souboru řekněme ahoj.txt bez ohledu na rozlišení velkých a malých písmen spusťte příkaz:

$ grep -i Linux hello.txt

Chcete-li získat další možnosti, které můžete použít s grep , jednoduše si přečtěte náš článek, který uvádí příklady pokročilejších příkladů příkazů grep.

2. Příkaz sed

Sed – zkratka pro Stream Editor – je dalším užitečným nástrojem příkazového řádku pro manipulaci s textem v textovém souboru. Sed vyhledává, filtruje a nahrazuje řetězce v daném souboru neinteraktivním způsobem.

Ve výchozím nastavení sed příkaz vytiskne výstup do STDOUT (Standardní ), což znamená, že výsledek provádění je vytištěn na terminálu namísto uložení do souboru.

Příkaz Sed se vyvolá následovně:

$ sed -OPTIONS command [ file to be edited ]

Chcete-li například nahradit všechny instance „Unix ‘ s ‘Linux ‘, vyvolejte příkaz:

$ sed 's/Unix/Linux' hello.txt

Pokud chcete výstup přesměrovat místo jeho tisku na terminálu, použijte přesměrovací znak ( > ) jak je uvedeno.

$ sed 's/Unix/Linux' hello.txt > output.txt

Výstup příkazu se uloží do output.txt místo tisku na obrazovku.

Chcete-li zjistit více možností, které lze použít, znovu se podívejte na manuálové stránky.

$ man sed

3. Potvrdit příkaz

Potvrdit je rychlý a přenosný nástroj příkazového řádku napsaný v Perlu. Potvrdit je považován za přátelskou náhradu za grep utility a výstupy jsou vizuálně přitažlivé.

Potvrdit příkaz hledá v souboru nebo adresáři řádky, které obsahují shodu pro vyhledávací kritéria. Poté zvýrazní odpovídající řetězec v řádcích.
Ack má schopnost rozlišovat soubory na základě jejich přípon souborů a do určité míry i obsahu v souborech.

Syntaxe příkazu Ack:

$ ack [options] PATTERN [FILE...]
$ ack -f [options] [DIRECTORY...]

Chcete-li například zkontrolovat hledaný výraz Linux , spustit:

$ ack Linux hello.txt

Vyhledávací nástroj je docela inteligentní a pokud uživatel neposkytne žádný soubor nebo adresář, prohledá aktuální adresář a podadresáře a hledá vzor vyhledávání.

V níže uvedeném příkladu nebyl poskytnut žádný soubor ani adresář, ale ack automaticky detekoval dostupný soubor a vyhledal odpovídající poskytnutý vzor.

$ ack Linux

Chcete-li nainstalovat ack ve vašem systému spusťte příkaz:

$ sudo apt install ack-grep    [On Debian/Ubuntu]
$ sudo dnf install ack-grep    [On CentOS/RHEL]

4. Příkaz Awk

Awk je plnohodnotný skriptovací jazyk a také nástroj pro zpracování textu a manipulaci s daty. Prohledává soubory nebo programy, které obsahují vyhledávací vzor. Když je řetězec nebo vzor nalezen, awk provede akci na zápas nebo linii a vytiskne výsledky na STDOUT .

AWK vzor je uzavřen mezi složené závorky, zatímco celý program je uzavřen v jednoduchých uvozovkách.

Vezměme si nejjednodušší příklad. Předpokládejme, že tisknete datum svého systému podle obrázku:

$ date

Předpokládejme, že chcete vytisknout pouze první hodnotu, což je den v týdnu. V takovém případě výstup nasměrujte do awk jak je znázorněno:

$ date | awk '{print $1}'

Chcete-li zobrazit následující hodnoty, oddělte je čárkou, jak je znázorněno:

$ date | awk '{print $1,$2}'

Výše uvedený příkaz zobrazí den v týdnu a datum v měsíci.

Chcete-li získat další možnosti, které můžete použít s awk , jednoduše si přečtěte naši řadu příkazů awk.

5. Stříbrný hledač

Silver searcher je multiplatformní a opensource nástroj pro vyhledávání kódu podobný ack ale s důrazem na rychlost. Usnadňuje vám vyhledání určitého řetězce v souborech v co nejkratším čase:

Syntaxe:

$ ag OPTIONS search_pattern /path/to/file

Chcete-li například vyhledat řetězec ‚Linux ‘ v souboru hello.txt vyvolejte příkaz:

$ ag Linux hello.txt

Pro další možnosti navštivte manuálové stránky:

$ man ag

6. Ripgrep

Nakonec tu máme nástroj příkazového řádku ripgrep. Ripgrep je multiplatformní nástroj pro vyhledávání vzorců regulárních výrazů. Je mnohem rychlejší než všechny dříve zmíněné vyhledávací nástroje a rekurzivně vyhledává v adresářích odpovídající vzory. Pokud jde o rychlost a výkon, žádný jiný nástroj nevyniká nad Ripgrep .

Ve výchozím nastavení ripgrep přeskočí binární soubory/skryté soubory a adresáře. Také mějte na paměti, že ve výchozím nastavení nebude vyhledávat soubory, které ignoruje .gitignore/.ignore/.rgignore soubory.

Ripgrep také umožňuje vyhledávat konkrétní typy souborů. Chcete-li například omezit vyhledávání na Javascript soubory běží:

$ rg -Tsj

Syntaxe pro použití ripgrep je docela snadná:

$ rg [OPTIONS] PATTERN [PATH...]

Například. Chcete-li vyhledat výskyty řetězce ‘Linux’ v souborech umístěných v aktuálním adresáři spusťte příkaz:

$ rg Linux

Chcete-li nainstalovat ripgrep na vašem systému spusťte následující příkazy:

$ sudo apt install ripgrep      [On Debian/Ubuntu]
$ sudo pacman -S ripgrep        [On Arch Linux]
$ sudo zypper install ripgrep   [On OpenSuse]
$ sudo dnf install ripgrep      [On CentOS/RHEL/Fedora]

Pro další možnosti navštivte manuálové stránky:

$ man rg

Toto jsou některé z nejpoužívanějších nástrojů příkazového řádku pro vyhledávání, filtrování a manipulaci s textem v Linuxu. Pokud máte další nástroje, o kterých si myslíte, že jsme vynechali, dejte nám vědět v sekci komentářů.


Linux
  1. Jak převést PPK na soubor PEM pomocí příkazu

  2. Nejlepší nástroje pro obnovu dat [Windows, Linux, DOS, MacOS X]

  3. Použití příkazu ripgrep (rg) v Linuxu

  1. Nejlepší nástroje pro přenos souborů v systému Linux

  2. Jak rozdělit iso nebo soubor pomocí příkazu „split“ v Linuxu

  3. Jak vytvořit řídké soubory v Linuxu pomocí příkazu „dd“.

  1. Nejlepší způsob, jak prohledávat historii společnosti Shell?

  2. Uložit soubor po použití příkazu Sed?

  3. Vypište soubor pomocí příkazu ls v Linuxu s úplnou cestou