Comment rechercher des chaînes dans des fichiers d'un dossier?

88

Existe-t-il un utilitaire permettant de rechercher une chaîne dans les fichiers ASCII pour éviter les recherches sur la ligne de commande?

Comment effectuer une recherche par ligne de commande, par exemple pour la chaîne "test" dans tous les fichiers du répertoire /var/x/ ?

    
posée Nuno 09.10.2012 - 10:33
la source

7 réponses

71

Vous pouvez utiliser searchmonkey. L'outil est disponible dans les référentiels, vous pouvez donc simplement

sudo apt-get install searchmonkey

D'autre part, la recherche par ligne de commande avec grep est vraiment destinée à cela ...

Voici une capture d'écran de searchmonkey

    
réponse donnée alci 09.10.2012 - 10:41
la source
140

Je suppose que votre première question concerne une alternative à l'interface graphique à la commande grep . Je ne peux pas vous aider avec ça, je trouve toujours la ligne de commande très efficace.

Comme pour la ligne de commande, essayez

grep "test" /var/x/*

Si vous souhaitez effectuer une recherche récursive (c’est-à-dire non seulement dans /var/x/ , mais aussi dans ses sous-répertoires), faites

grep -R "test" /var/x/

Pour éviter que les fichiers que grep pense être binaires soient utilisés, utilisez l’option -I :

grep -I "test" /var/x/

Si grep pense qu'un fichier est binaire (basé sur les premiers octets du fichier), il supposera qu'il ne correspond pas au lieu de parcourir tout le fichier.

    
réponse donnée January 09.10.2012 - 10:46
la source
16

Vous pouvez utiliser regexxer , un excellent outil de recherche / remplacement d’interface graphique pour les expressions régulières.

vous pouvez télécharger par:

sudo apt-get install regexxer

    
réponse donnée user61928 09.10.2012 - 12:57
la source
5

Essayez Recoll, meilleure interface graphique que j'ai jamais utilisée. Pour installer recoll dans toutes les versions actuellement prises en charge d'Ubuntu, ouvrez le terminal et tapez:

sudo apt install recoll

Il faut un certain temps pour indexer les fichiers en premier (vous pouvez définir un chemin de liste noire ou des extensions ou un mime).

    
réponse donnée user244846 05.02.2014 - 12:28
la source
3

Vous pouvez utiliser la commande grep à partir du terminal:

grep -r string *

Cette commande trouvera toutes les occurrences de "string" dans tous les fichiers du répertoire actuel (ou des sous-répertoires).

Pour les fichiers cachés, vous pouvez utiliser:

grep -r string ..

    
réponse donnée inquisitive 16.04.2015 - 11:58
la source
2

Malheureusement, grep fait un très mauvais travail de recherche dans les fichiers Word (.doc), mais vous pouvez générer une sortie catdoc dans grep. Je ne suis pas programmeur mais ce petit script fonctionne bien pour moi:

#!/bin/bash
export GREP_OPTIONS='--color=auto'
echo -e "\n
Welcome to scandocs. This will search .doc (NOT .docx) files in this directory for a given string. \n
Type in the text string you want to find... \n"
read response
find . -name "*.doc" | 
while read i; do catdoc "$i" | 
grep -iH --label="$i" "$response"; done

Toutes les améliorations et suggestions sont les bienvenues!

    
réponse donnée Ralph 26.01.2013 - 15:28
la source
1

Je viens de publier un outil simple pour faire le travail. Pensé principalement pour les développeurs de logiciels, il a la caractéristique (unique?) D'ouvrir plusieurs fichiers dans la même fenêtre. Il présente les résultats dans le navigateur en utilisant l'éditeur Ace (recommandé!) Ou HTML textarea. Il s’agit d’un outil basé sur Java, qui s’exécute aussi bien sous Windows que sous Linux.

vérifiez-le!

lien

    
réponse donnée Alejadro Xalabarder 01.11.2016 - 22:35
la source

Lire d'autres questions sur les étiquettes