Supposons que j’ai un répertoire nommé _file contenant deux sous-répertoires tels que _1 et _2 et sur chacun d’eux, des fichiers texte. Je veux rechercher un mot comme foo dans l'un de ces fichiers texte. Comment je peux faire ça? Je veux savoir quels fichiers texte de tout le répertoire contiennent ce mot?
ack-grep
en tapant Sudo apt-get install ack-grep
ack-grep foo
. il répertorie toutes les correspondances dans tous les fichiers de ce répertoire.Si vous ne souhaitez pas installer de logiciel supplémentaire, vous pouvez simplement utiliser grep
dans le terminal. Pour effectuer une recherche récursive dans les répertoires, vous pouvez utiliser l'option -r
(voir man grep
pour plus de détails). La syntaxe que vous recherchez est probablement:
grep -r "[STRING TO SEARCH FOR]" "[DIRECTORY TO SEARCH]"
Ainsi, par exemple, si je souhaite rechercher la chaîne "asdf" dans tous les fichiers de tous les sous-répertoires de "/ tmp/testdir /", la commande ressemble à ceci:
grep -r "asdf" "/tmp/testdir/"
Les guillemets ne sont pas strictement nécessaires, mais si votre chaîne ou votre chemin de répertoire contient des espaces, vous devrez sinon les masquer à l'aide du caractère\...
Vous pouvez utiliser récursif grep
avec l'indicateur -l
pour n'imprimer que le nom du fichier à la place de la ligne correspondante:
grep -Rl foo .
Ou, vous pouvez utiliser find
name__:
find . -type f -exec grep -l foo {} +
Ou. vous pouvez utiliser extglob
et normal grep
name__
shopt -s extglob
grep -l foo **/*
Installez simplement gnome-search-tool
en utilisant Sudo apt-get install gnome-search-tool
Recherchez dans le tableau de bord "rechercher des fichiers" et lancez-le.
Voir l'image ci-dessous:
Prendre plaisir.