2013-01-02 11 views

risposta

11

Sì. grep "a certain string" 200901*/*.csv.

5

avete bisogno di qualcosa di simile:

grep NEEDLE 200901*/*.csv 

(supponendo che la stringa di ricerca è NEEDLE ovviamente - solo cambiare a tutto ciò che sei in realtà cercando).

La shell bash è in grado di espandere percorsi e nomi di file a più livelli.

Ovviamente, è limitato solo ai file CSV una directory in basso. Se si desidera cercare interi sottoalberi, sarà necessario utilizzare il comando leggermente modulato (e adattabile) find.

Anche se, supponendo che si può impostare un limite sulla profondità, si potrebbe ottenere via con qualcosa di simile (tre livelli):

grep NEEDLE 200901*/*.csv 200901*/*/*.csv 200901*/*/*/*.csv 
+0

Oppure, è possibile [impostare globstar e utilizzare **] (http://wiki.bash-hackers.org/internals/shell_options#globstar) –

4

Prova questo:

grep -lr "Pattern" 200901*/*.csv 
0

Prova un combinazione di trovare per la ricerca di modelli di nomi di file specifici e grep per l'individuazione del modello:

find . -name "*.csv" -print -exec grep -n "NEEDLE" {} \; | grep -B1 "NEEDLE"