Existe-t-il un utilitaire permettant de rechercher une chaîne dans les fichiers ASCII afin d'éviter les recherches en ligne de commande?
Comment effectuer une recherche en ligne de commande, par exemple pour la chaîne "test" dans tous les fichiers du répertoire /var/x/
?
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 en ligne de commande avec grep est vraiment destinée à cela ...
Voici une capture d'écran de searchmonkey
Je suppose que votre première question concerne une alternative graphique à la commande grep
. Je ne peux pas vous aider avec ça, je trouve toujours la ligne de commande très efficace.
Quant à 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 également dans ses sous-répertoires), effectuez une recherche.
grep -R "test" /var/x/
Pour éviter de greper les fichiers que grep pense être binaires, 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 l'intégralité du fichier.
Vous pouvez utiliser regexxer c'est 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
Vous pouvez utiliser la commande grep
depuis le terminal:
grep -r string *
Cette commande trouvera toutes les occurrences de "chaîne" dans tous les fichiers du répertoire courant (ou des sous-répertoires).
Pour les fichiers cachés, vous pouvez utiliser:
grep -r string ..
Essayez Recoll, la meilleure interface graphique que j'ai jamais utilisée. Pour installer récoll dans toutes les versions actuellement prises en charge d'Ubuntu, ouvrez le terminal et tapez:
Sudo apt install recoll
Il faut un peu de temps pour indexer d’abord les fichiers (vous pouvez définir le chemin de la liste noire, ses extensions ou mime).
Malheureusement, grep effectue très mal la recherche dans les fichiers Word (.doc), mais vous pouvez rediriger la sortie de catdoc vers grep. Je ne suis pas un programmeur mais ce petit script me convient parfaitement:
#!/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!
Je viens de publier un outil simple pour faire le travail. Conçu principalement pour les développeurs de logiciels, il présente 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 Ace Editor (recommandé!) Ou html textarea. C'est un outil basé sur Java et qui s'exécute donc aussi bien sous Windows que sous Linux.
vérifiez-le!