Come cercare le stringhe all'interno dei file in una cartella?

88

Esiste qualche utilità per effettuare ricerche di una stringa all'interno di file ASCII per evitare le ricerche dalla riga di comando?

Come eseguire una ricerca da riga di comando, ad esempio per la stringa "test" in tutti i file nella directory /var/x/ ?

    
posta Nuno 09.10.2012 - 10:33

7 risposte

71

Puoi usare searchmonkey. Lo strumento è disponibile nei repository, quindi puoi semplicemente

sudo apt-get install searchmonkey

D'altra parte, la ricerca da linea di comando con grep è veramente intesa per quello ...

Ecco uno screenshot da searchmonkey

    
risposta data alci 09.10.2012 - 10:41
140

Suppongo che la tua prima domanda riguardi un'alternativa alla GUI al comando grep . Non posso aiutarti, trovo la riga di comando sempre molto efficace.

Come per la riga di comando, prova

grep "test" /var/x/*

Se vuoi cercare ricorsivamente (cioè non solo in /var/x/ , ma anche in sottodirectory di questi), fai

grep -R "test" /var/x/

Per evitare di scaricare i file che grep pensa essere binario, usa l'opzione -I :

grep -I "test" /var/x/

Se grep pensa che un file sia binario (basato sui primi pochi byte del file), suppone che non corrisponda invece di passare attraverso l'intero file.

    
risposta data January 09.10.2012 - 10:46
16

Puoi usare regexxer è un ottimo strumento di ricerca / sostituzione della GUI per le espressioni regolari.

puoi scaricare da:

sudo apt-get install regexxer

    
risposta data user61928 09.10.2012 - 12:57
5

Prova Recoll, la migliore interfaccia grafica che io abbia mai usato. Per installare il richiamo in tutte le versioni attualmente supportate di Ubuntu, apri il terminale e digita:

sudo apt install recoll

È necessario del tempo per indicizzare prima i file (puoi definire il percorso della lista nera o estensioni o mimo).

    
risposta data user244846 05.02.2014 - 12:28
3

Puoi usare il comando grep dal terminale:

grep -r string *

Questo comando troverà tutte le occorrenze di "string" in tutti i file nella directory corrente (o nelle sottodirectory).

Per i file nascosti, puoi usare:

grep -r string ..

    
risposta data inquisitive 16.04.2015 - 11:58
2

Sfortunatamente grep fa un pessimo lavoro di ricerca all'interno dei file di Word (.doc), ma puoi reindirizzare l'output catdoc in grep. Non sono programmatore ma questo piccolo script funziona bene per me:

#!/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

Tutti i miglioramenti e i suggerimenti sono benvenuti!

    
risposta data Ralph 26.01.2013 - 15:28
1

Ho appena pubblicato un semplice strumento per fare il lavoro. Pensato principalmente per lo sviluppatore di software, ha la caratteristica (unica?) Di aprire diversi file nella stessa finestra. Presenta i risultati nel browser utilizzando l'editor Ace (consigliato!) O l'area di testo html. È uno strumento basato su Java quindi funziona sia in windows che in linux.

dai un'occhiata!

link

    
risposta data Alejadro Xalabarder 01.11.2016 - 22:35

Leggi altre domande sui tag