GNU/Linux >> Znalost Linux >  >> Linux

Jak najít soubory obsahující konkrétní textový řetězec v Linuxu

Téměř všichni správci souborů pro Linux jako Nemo a Thunar ve výchozím nastavení poskytuje možnost vyhledávat soubory. Ale pokud chcete hledat řetězec v obsahu souboru pomocí správce souborů, většina z nich vám to nedovolí.

V tomto článku proberu různé způsoby, které můžete použít v jakékoli distribuci Linuxu k nalezení všech souborů obsahujících konkrétní textové řetězce nebo slova rekurzivním procházením všech podadresářů.

Na této stránce

  • Vyhledejte konkrétní text v systému Linux pomocí nástroje Catfish GUI Tool
  • Vyhledejte konkrétní text v systému Linux pomocí příkazu Grep
  • Vyhledejte konkrétní text v Linuxu pomocí MC (Midnight Commander)

Vyhledejte konkrétní text v Linuxu pomocí nástroje Catfish GUI Tool

Začnu tím nejjednodušším způsobem, který může fungovat pro všechny, včetně začátečníků až po pokročilé uživatele Linuxu. Sumec je jednoduchý a lehký nástroj pro vyhledávání souborů založený na grafickém uživatelském rozhraní pro stolní počítače se systémem Linux. Spolu s vyhledáváním souborů ve vašem systému jej můžete také použít k nalezení všech souborů, které obsahují určité slovo.

[ Také by se vám mohlo líbit:Jak najít soubory založené na časovém razítku v Linuxu ]

Nainstalujte si Catfish Search Tool na Linux

Sumec balíček je již dostupný v primárních úložištích Debianu a Ubuntu. Pokud tedy používáte distribuce Debian nebo Ubuntu, můžete je jednoduše nainstalovat spuštěním příkazu:

$ sudo apt install catfish  [On Debian/Ubuntu & Mint]

V jiných distribucích Linuxu jej můžete nainstalovat z výchozích repozitářů pomocí správce balíčků.

$ sudo yum install catfish  [On CentOS/RHEL 7]
$ sudo dnf install catfish  [On CentOS/RHEL 8 & Fedora]
$ sudo pacman -S catfish    [On Arch Linux]
$ sudo pkg_add -v catfish   [On FreeBSD]

Pokud balíček není k dispozici, můžete si stáhnout soubor nejnovější verze, rozbalit stažený soubor tar.bz2 a spustit následující příkaz:

$ sudo python3 setup.py install

Vyhledat obsah souboru pomocí Catfish

Po instalaci stačí povolit „Prohledat obsah souboru “, vyberte adresáře z rozbalovací nabídky vlevo nahoře a zadejte text, který chcete vyhledat. Zobrazí seznam všech souborů obsahujících text spolu s velikostí a umístěním souboru.

Můžete také použít filtr typu souboru a upraveného data z levého panelu ke zmenšení rozsahu hledání. Můžete dokonce přidat cestu k adresáři, kde nechcete hledat.

Vyhledejte konkrétní text v Linuxu pomocí příkazu Grep

Vedle GUI způsobem, grep je jedním z oblíbených nástrojů příkazového řádku, který lze použít k vyhledávání uvnitř obsahu souboru. Protože téměř všechny operační systémy podobné unixu se dodávají grep ve výchozím nastavení jej nemusíte instalovat.

Vyhledat konkrétní text v souborech

Chcete-li nyní vyhledat a najít všechny soubory pro daný textový řetězec v terminálu Linux, můžete spustit následující příkaz. Zde je '-r' nebo '-R' flag rekurzivně prohledává všechny podadresáře v zadaném adresáři.

$ grep -r “linuxshelltips” /home/sarvottam/

Najděte názvy souborů, které obsahují daný řetězec

Pokud chcete tisknout pouze názvy souborů a skrýt text z výstupu, můžete použít '-l' vlajka.

$ grep -rl “linuxshelltips” /home/sarvottam/

Tisk názvů souborů a čísel řádků, které obsahují daný řetězec

Kromě toho můžete také vyladit výstup pomocí následujících možností dostupných pro grep :

  • 'i' pro nerozlišování velkých a malých písmen.
  • 'n' vytisknout číslo řádku.
  • 'w' aby odpovídalo celému slovu.
$ sudo grep -rnwi “linuxshelltips” /home/sarvottam/

Za zmínku také stojí, že pokud prohledáváte adresáře, které vyžadují oprávnění root, musíte použít příkaz sudo.

Vyhledejte konkrétní text v konkrétních typech souborů

Chcete-li dále omezit rozsah vyhledávání, můžete také konkrétně uvést typ souboru a adresářů, které se mají hledat pouze při vyhledávání. “--include” , “--exclude” a “--exclude-dir” jsou dostupné možnosti pro přidání filtru typu souboru a adresáře.

$ grep --include=\*.txt --exclude=\*.{java,js} --exclude-dir=\bin -rnwi "linuxshelltips" /home/sarvottam/

Vyhledat konkrétní text v Linuxu pomocí MC (Midnight Commander)

Pokud žijete v terminálu a přesto chcete prohledávat text pomocí GUI, můžete také vyzkoušet nástroj správce souborů založený na terminálovém uživatelském rozhraní (TUI), mc (půlnoční velitel ) – je vizuální správce souborů, který se používá k vyhledávání souborů.

Nainstalujte Midnight Commander na Linux

Půlnoční velitel je k dispozici pro instalaci z výchozích repozitářů ve většině distribucí Linuxu.

$ sudo apt install mc  [On Debian/Ubuntu & Mint]
$ sudo yum install mc  [On CentOS/RHEL 7]
$ sudo dnf install mc  [On CentOS/RHEL 8 & Fedora]
$ sudo pacman -S mc    [On Arch Linux]
$ sudo pkg_add -v mc   [On FreeBSD]

Prohledejte obsah souboru pomocí Midnigh Commander

Uvnitř terminálu mc poskytuje vizuální reprezentaci souborového systému, ve kterém se můžete pohybovat buď pomocí klávesnice nebo myši. Chcete-li prohledat obsah souboru, můžete otevřít vyhledávací dialog pomocí ALT+SHIFT+? a zadejte text do “Content:” sekce.

Jak můžete vidět na obrázku výše, můžete také použít filtry, jako je ignorovat velká a malá písmena, celá slova a regulární výraz, a to pouhým zaškrtnutím a zrušením zaškrtnutí.

Závěr

Všechny výše uvedené aplikace jsou přátelské pro začátečníky, volně použitelné a open source pro přidání vlastních vylepšení. Případně můžete také vyzkoušet další bezplatné nástroje, jako je Ack, The Silver Searcher, Ripgrep a příkaz find.


Linux
  1. Jak najít konkrétní text pomocí GREP v systému Linux

  2. Jak rozeznat binární soubory od textových souborů v linuxu

  3. Jak najít soubory ve formátu DOS v systému souborů linux

  1. Příkaz Linux:Jak „najít“ pouze textové soubory?

  2. Jak v Linuxu najdu všechny soubory obsahující konkrétní text?

  3. Jak v Linuxu odstraníte soubory starší než konkrétní datum?

  1. Jak najít soubor v Linuxu

  2. Jak vyhledávat v konkrétních souborech odpovídajících vzoru?

  3. Jak najít textové soubory, které neobsahují text v Linuxu?