logo

Jak najít všechny soubory obsahující konkrétní text (řetězec) v systému Linux

Předpokládejme, že hledáte soubor v Linuxu, ale zapomněli jste jeho jméno. Pamatujete si pouze obsah souboru. Jak v tomto případě soubor najdete? Existuje několik užitečných metod, které vám pomohou najít soubor obsahující konkrétní text (nebo řetězec) v Linuxu. Řetězec musí být specifikován uživatelem. Pojďme se tedy podívat na metody:

Metody pro vyhledání všech souborů obsahujících konkrétní text (řetězec) v systému Linux

Metoda 1: příkaz grep

příkaz grep v Linuxu, který se používá k vyhledávání souborů obsahujících konkrétní text nebo řetězec. Ve výchozím nastavení nám zobrazuje řádky v souborech, které obsahují konkrétní text. Pokud k němu připojíme volbu -l, příkaz nám zobrazí všechny soubory, které obsahují konkrétní text.



Příklad:

Předpokládejme, že máme adresář, který obsahuje dva soubory s názvem soubor1.txt a soubor2.txt.

dijkstra

Obsah souboru 1.txt:



This line contains text.>

Obsah souboru 2.txt:

You should learn Data Structures & Algorithms.>

Nyní použijeme příkaz grep s volbou -l k vyhledání textu v daných souborech umístěných v aktuálním adresáři. Viz následující příklad:



Z výše uvedeného příkladu lze jasně říci, že příkaz grep úspěšně našel daný řetězec v souboru1.txt. V důsledku toho se na obrazovce zobrazil název souboru.

Můžeme také použít volbu -i, abychom řekli grepu, aby ignoroval malá a velká písmena. Podívejte se na následující příklad:

pawandeep rajan

Výše jsme nejprve použili předchozí příkaz, ale daný řetězec je Text. Protože soubor1.txt obsahuje text, nikoli text, není brán v úvahu. Zde se operace vyhledávání provádí s ohledem na případ. Potom jsme použili volbu -i. Výsledkem je, že velikost písmen je ignorována a daný řetězec se shoduje s řetězcem, který obsahuje soubor1.txt. Na obrazovce se tedy zobrazí název souboru.

Další variantou je použití volby -r. Navrhuje grep, aby hledal daný řetězec v aktuálním adresáři a jeho podadresářích rekurzivně. Podívejte se na níže uvedený příklad:

soubor1.txt a soubor2.txt jsou umístěny ve složce souborů, nikoli v aktuálním adresáři, tedy na ploše. Pokud tedy nepoužijeme volbu -r, nebudou nalezeny žádné soubory s odpovídajícími řetězci, protože v aktuálním adresáři neexistují. Ale použili jsme volbu -r a také vynechali názvy souborů. Výsledkem je, že grep hledá odpovídající řetězce nejen v aktuálním adresáři, ale také v jeho podadresářích. Soubor1.txt je tedy nalezen a zobrazen na obrazovce.

Metoda 2: Kombinace příkazu find a grep

nalézt je další užitečný příkaz v Linuxu. Zkombinujeme find s volbou -type f pro vyhledání souborů a volbou -exec pro použití grep na nalezené soubory. Podívejte se na následující příklad:

Je zřejmé, že vyhledávací operace najde soubor1.txt, protože obsahuje odpovídající řetězec. Na obrazovce se tedy zobrazí název souboru.

Metoda 3: Najděte soubory obsahující konkrétní text pomocí mc

Můžeme také vyhledávat soubory pomocí Midnight Commander (mc). Otevřete aplikaci a stiskněte Alt + Shift + ? otevřete dialogové okno Najít soubor. V horní části uvidíte pole Start. Do pole zadejte cestu, kde soubory existují. Poté do pole obsahu zadejte řetězec, který chcete hledat. V našem případě jsme hledali text v adresáři Files:

Níže je jasně vidět, že operace vyhledávání úspěšně našla soubor1.txt, který obsahuje odpovídající řetězec.

třídit hromadu

Metoda 4: příkaz ripgrep

ripgrep (napsaný jako rg) je příkaz, který lze použít jako alternativu k příkazu grep. Implementace je níže:

file1.txt je nalezen, a proto se na obrazovce zobrazí název souboru.

Metoda 5: příkaz potvrzení

Dalším příkazem, který můžeme použít, je příkaz ack. Zde je implementace:

převést řetězec na objekt json

soubor1.txt byl úspěšně nalezen a zobrazen na obrazovce.