GNU/Linux >> Znalost Linux >  >> Linux

Jak hledat slovo v celém obsahu adresáře v linuxu

xargs očekává vstup ve formátu, který žádný jiný příkaz nevytváří, takže je těžké jej efektivně používat. Co je zde špatně je, že máte soubor, jehož název musí být uveden na vstupu do xargs (pravděpodobně obsahující ' ).

Pokud váš grep podporuje -r nebo -R možnost pro rekurzivní vyhledávání, použijte ji.

grep -r word .

V opačném případě použijte -exec primární z find . Toto je obvyklý způsob, jak dosáhnout stejného efektu jako xargs , s výjimkou bez omezení názvů souborů. Přiměřeně nejnovější verze find umožňují seskupit několik souborů v jediném volání pomocného příkazu. Předání /dev/null na grep zajišťuje, že se před každou shodou zobrazí název souboru, i když je náhodou volán na jediném souboru.

find . -type f -exec grep word /dev/null {} +

Starší verze find (na starších systémech nebo OpenBSD nebo omezených utilitách, jako je BusyBox) může volat pomocný příkaz pouze na jeden soubor najednou.

find . -type f -exec grep word /dev/null {} \;

Některé verze find a xargs mají přípony, které jim umožňují správně komunikovat, pomocí nulových znaků k oddělení názvů souborů, takže nejsou vyžadovány žádné uvozovky. V dnešní době má tuto funkci pouze OpenBSD bez -exec … {} + .

find . -type f -print0 | xargs -0 grep word /dev/null

Asi máte na mysli první možnost

grep rekurzivní, pro vyhledávání obsahu uvnitř souborů

grep -R "content_to_search" /path/to/directory

Je rekurzivní, pro vyhledávání souborů, které se shodují

ls -lR | grep "your_search"

Pokud máte nástroje GNU (což máte, pokud je značka Linux přesná), můžete použít -print0 a -0 abyste se vyhnuli obvyklým problémům s citacemi:

find . -type f -print0 | xargs -0 grep word

Linux
  1. Jak vytvořit sdílený adresář pro všechny uživatele v Linuxu

  2. Jak vyhledávat a odstraňovat adresáře rekurzivně v systému Linux

  3. Jak najít soubor v Linuxu

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

  2. jak vyhledat adresář z terminálu v ubuntu

  3. Jak zkombinovat hledání a grep pro komplexní hledání? ( GNU/linux, find, grep )

  1. Jak používat příkaz „najít“ k hledání více názvů souborů (přípon) v systému Linux

  2. Linux – Jak vědět, co dělat Grep v Dmesg?

  3. Linux – Jak šáhnout po konkrétním slovu a uchopit text?