2010-07-13 09:42:08 +0000 2010-07-13 09:42:08 +0000
179
179

Come trovare i file con un certo testo nel Terminal

Vorrei trovare tutti i file che contengono una certa stringa di testo. Come lo faresti nel Terminale?

Risposte (5)

299
299
299
2010-07-13 09:47:11 +0000
grep -r 'text goes here' path_goes_here
31
31
31
2010-08-12 22:38:59 +0000

utilizzare il faretto

mdfind "text goes here"
mdfind -onlyin /home/user/Desktop -live "live update"

non dimenticare di guardare:

man mdfind
12
12
12
2016-03-03 14:07:18 +0000
  1. Attraverso Ack
brew install ack 
ack "text goes here"
  1. 1. Attraverso find
find . |grep "text goes here"
  1. Attraverso Ack
grep -RnslI "text goes here"
  1. Attraverso grep

&001

4
4
4
2017-06-01 08:00:18 +0000

Potete scegliere una delle seguenti opzioni a seconda dei vostri gusti e delle vostre esigenze. Supponendo di dover cercare file contenenti testo - “async”, ricorsivamente nella directory corrente, è possibile farlo in uno dei modi seguenti:

Usando grep

Usando ack

2
2
2
2017-06-01 15:27:29 +0000

La risposta di Ignacio è ottima e mi ha aiutato a trovare i file contenenti un certo testo. L'unico problema che ho dovuto affrontare è stato che quando ho eseguito questo comando tutti i file sarebbero stati elencati, incluso uno in cui lo schema non appariva.

No such file or directory Questo è ciò che vedo a fianco dei file che non contengono lo schema.

Se invece si aggiunge -s al comando, come in:grep -lr "text pattern" ./ -s ; grep -lr "text pattern" [PATH DIRECTORY] -s ; grep -nr "text pattern" ./ -s viene usato, vi mostrerà solo quali file contengono lo schema.

Analogamente se si usa il comando grep -nr "text pattern" [PATH OF DIRECTORY] -s ; &007 stampa il file più il numero di riga, e l'occorrenza dello schema.

Correggetemi se la mia comprensione è sbagliata. Riferimento: Come posso far sì che grep non stampi gli errori di ‘No such file or directory’?