Condividi:        

bash script per comandi su gruppi di files

Per tutti i tuoi problemi Linux entra qui e risolvili!

Moderatori: Anthony47, gunter, zendune

bash script per comandi su gruppi di files

Postdi JClark » 23/02/04 17:26

Ciao a tutti

in una cartella ho dei files e solo su alcuni vorrei eseguire un grep per cercare certe stringhe.

Concettualmente vorrei fare uno di seguito all'altro:

un ls -l *.txt che invia la lista dei files ad un cat greppanto su di una stringa da cercare

E' necessario scrivere un scriptino o è possibile fare tutto con un comando ?

Bye & Thanks
Il brutto tempo non esiste ... il brutto tempo è quello che passo senza andare in moto !

Bye Frank
:-)
JClark
Utente Senior
 
Post: 416
Iscritto il: 24/09/01 01:00
Località: Voghera

Sponsor
 

Postdi zello » 25/02/04 23:10

Due soluzioni (non testate, che non sono sotto linux ora):

grep "quello che vuoi trovare" *.txt
(la shell espande *.txt)

oppure

for file in $(ls); do cat $file| grep "ciochevuoi" | done
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Postdi JClark » 26/02/04 08:47

Figata - Funziona !!! :P

sono riuscito a far buttare l'output in un file, aggiungendo un > pippo.txt alla fine dell'istruzione, l'unica cosa che mancherebbe (spero di non approfittare troppo) è riuscire a tire dentro al file pippo.txt il nome del file cui si riferisce la prorzione di grep anche ad output nullo ...

mi spiego se ho tre file, sarebbe carino che in pippo.txt ci fosse:
nomefile1
...
...
...
nomefile2
nomefile3
...
...

dove ... sono le parti di testo che sono state estratte con il grep dai file esaminati. Nel caso di nomefile2, il fatto che compaia da solo, significa che è stato letto, ma non ha presentato corrispondenze.

P.S. ho notato un pipe prima del done è invece un ;
Spero apprezzerai il fatto che ho capito la tua indicazione
:D
Il brutto tempo non esiste ... il brutto tempo è quello che passo senza andare in moto !

Bye Frank
:-)
JClark
Utente Senior
 
Post: 416
Iscritto il: 24/09/01 01:00
Località: Voghera

Postdi zello » 26/02/04 23:48

Codice: Seleziona tutto
 for file in $(ls *.txt); do echo $file; cat $file | grep "quello che vuoi" ; done 2> /dev/null
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Postdi JClark » 27/02/04 07:53

E' talmente bello da far male 8)

L'unico dubbio è sulla redirezione degli errori, io li manderei cmq nel file per poterli vedere .

Cmq appena riesco a provarlo ti faccio sapere ! Thanks

Bye Frank
Il brutto tempo non esiste ... il brutto tempo è quello che passo senza andare in moto !

Bye Frank
:-)
JClark
Utente Senior
 
Post: 416
Iscritto il: 24/09/01 01:00
Località: Voghera


Torna a Software Linux


Topic correlati a "bash script per comandi su gruppi di files":


Chi c’è in linea

Visitano il forum: Nessuno e 32 ospiti