GNU/Linux >> Linux Esercitazione >  >> Linux

Un modo rapido per cercare determinate righe di codice in molti file in un progetto

Su Linux/Unix c'è uno strumento a riga di comando chiamato grep puoi usarlo per cercare più file per una stringa. Per esempi se volessi cercare strcpy in tutti i file:

~/sandbox$ grep -rs "strcpy"*
test.c:    strcpy(OSDMenu.name,"OSD MENU");

-r fornisce ricerche in modo ricorsivo in modo da ottenere tutti i file in tutte le directory (da quella corrente) ricercati. -s ignora gli avvisi, nel caso ti imbatti in file non leggibili.

Ora, se vuoi cercare qualcosa di personalizzato e non ricordi la custodia, ci sono opzioni come -i per consentire ricerche senza distinzione tra maiuscole e minuscole.

~/sandbox$ grep -rsi "myint" *
test.c:    int myInt = 5;
test.c:    int MYINT = 10; 

Puoi anche usare espressioni regolari nel caso in cui ti sei dimenticato esattamente come si chiamava (in effetti il ​​nome, 'grep' deriva dal comando sed g/re/p -- global/regular expression/print:

~/sandbox$ grep -rsi "my.*" *
test.c:    int myInt = 5;
test.c:    int MYINT = 10;
test.c:    float myfloat = 10.9;

installa cygwin se non stai usando *nix e usa find/grep, ad es.

find . -name '*\.[ch]' | xargs grep -n 'myfuncname'

Puoi usare grep per cercare tra i file usando il terminale/riga di comando.

grep -R "string_to_search" .

-R per essere ricorsivo, cerca anche in tutte le sottodirectory

Poi stringa che vuoi

Quindi è la posizione, . per la directory corrente


Linux
  1. Prova la ricerca ricorsiva di Sed e sostituisci prima di correre?

  2. Come cercare i file per dimensione ed estensione?

  3. Modo per cercare le pagine man per uno scenario d'uso tipico?

  4. Come cercare in file specifici che corrispondono a un modello?

  5. Come posso cercare uno schema multilinea in un file?

Come eseguire la ricerca del modello nei file utilizzando Grep

Cloc:conta le righe del codice sorgente in molti linguaggi di programmazione

Come eseguire la ricerca Grep su tutti i file e in tutte le directory

Come si cercano file contenenti terminazioni di riga DOS (CRLF) con grep su Linux?

Come cercare i contenuti di più file pdf?

Utilizzo di grep per cercare una stringa contenente un punto