it-swarm.it

Come trovare file con determinati testi nel terminale

Mi piacerebbe trovare tutti i file che contengono una determinata stringa di testo. Come lo faresti nel Terminale?

149
Svish
grep -r 'text goes here' path_goes_here
256

utilizzare riflettori

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

non dimenticare di guardare:

man mdfind
26
user46046
  1. Attraverso Ack

brew install ack ack "text goes here"

  1. Attraverso la ricerca

find . |grep "text goes here"

  1. Attraverso grep

grep -RnslI "text goes here"

10
Anant Gupta

Puoi scegliere uno dei seguenti, in base ai tuoi gusti e alle tue esigenze. Supponendo che sia necessario cercare i file contenenti testo - "async", in modo ricorsivo nella directory corrente, è possibile farlo in uno dei modi seguenti:

Uso di grep  enter image description here

Uso di ack  enter image description here

3
karthiks

La risposta di Ignacio è ottima e mi ha aiutato a trovare i file contenenti determinati testi. L'unico problema che stavo affrontando era che durante l'esecuzione di questo comando sarebbero stati elencati tutti i file, incluso uno in cui il pattern non si presentava.

No such file or directory Questo è ciò che vedo accanto ai file che non contengono il pattern.

Se invece aggiungi -s al comando, come in: grep -lr "text pattern" ./ -s; grep -lr "text pattern" [PATH DIRECTORY] -s è usato, ti mostrerà solo quali file contengono il pattern.

Allo stesso modo se grep -nr "text pattern" ./ -s; Il comando grep -nr "text pattern" [PATH OF DIRECTORY] -s viene utilizzato per stampare il file più il numero di riga e l'occorrenza del modello.

Per favore correggimi se la mia comprensione è sbagliata.

Riferimento: Come posso fare in modo che grep non stampi errori "No such file or directory"?

1
CP3O