[bash] problema con GREP
Moderatore: Staff
Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
[bash] problema con GREP
Salve a tutti, non riesco a capire come fare questo script.. => Selezionare tutti i file nella directory corrente che iniziano con a,b, o c e che contengano almeno 1 volta la parola "pippo" e copiarli nella directory ./tmp
Immagino che per Voi guru sia una stupidata ma io mi sto impastando da 2 giorni
Immagino che per Voi guru sia una stupidata ma io mi sto impastando da 2 giorni
Re: [bash] problema con GREP
con il seguente comando ottieni l'elenco dei file che contengono "pippo" e il cui nome inizia per "a"
il resto studiatelo
man grep è un buon punto d'inizio
Codice: Seleziona tutto
grep "pippo" ./a* -l
man grep è un buon punto d'inizio
-
- Linux 2.x
- Messaggi: 413
- Iscritto il: dom 6 gen 2008, 11:46
- Slackware: 14.1
- Kernel: 3.10.17-smp
- Desktop: Xfce 4.10
Re: [bash] problema con GREP
cp `grep -w -m1 pippo a* | cut -f1 -d:` ./tmp
Re: [bash] problema con GREP
whites11 ha scritto:con il seguente comando ottieni l'elenco dei file che contengono "pippo" e il cui nome inizia per "a"
il resto studiateloCodice: Seleziona tutto
grep "pippo" ./a* -l
man grep è un buon punto d'inizio
Grazie mille della risposta, io ero arrivato a questo:
grep "pippo" [abc]* -l
che effettivamente mi lista i file di cui ho bisogno.. il problema che incontravo era semplicemente che non avevo idea di come utilizzare quell'output
cioè..ora che so quali files copiare non so come copiarli... hai ragione, sono abbastanza n-bye..ma nn mi arrendo.. continuerò a cercare un costrutto che possa funzionare..
grazie ancora e ciao!
- harakei
- Packager
- Messaggi: 118
- Iscritto il: lun 19 dic 2005, 15:57
- Slackware: 13-current
- Kernel: 2.6.32.7-ck2
- Desktop: kde
- Località: Taranto
- Contatta:
Re: [bash] problema con GREP
io ne ho trovato uno, se vuoi, e solo se vuoi te lo passo.
- aschenaz
- Staff
- Messaggi: 4623
- Iscritto il: mer 28 lug 2004, 0:00
- Nome Cognome: Nino
- Slackware: current
- Kernel: 5.4.x
- Desktop: KDE
- Località: Reggio Calabria
- Contatta:
Re: [bash] problema con GREP
La risposta te l'ha già data sixjan: quello che includi tra apici invertiti è l'output di un comando che passi ad un altro comando.ora che so quali files copiare non so come copiarli
Re: [bash] problema con GREP
cp `grep "pippo" [abc]* -l` ./tmpaschenaz ha scritto:La risposta te l'ha già data sixjan: quello che includi tra apici invertiti è l'output di un comando che passi ad un altro comando.ora che so quali files copiare non so come copiarli
funziona!
però ho capito anche xè si usa cut in pipe con grep...ty
- aschenaz
- Staff
- Messaggi: 4623
- Iscritto il: mer 28 lug 2004, 0:00
- Nome Cognome: Nino
- Slackware: current
- Kernel: 5.4.x
- Desktop: KDE
- Località: Reggio Calabria
- Contatta:
Re: [bash] problema con GREP
Offtopic: P.S.: Benvenuto su Slacky!
-
- Linux 2.x
- Messaggi: 413
- Iscritto il: dom 6 gen 2008, 11:46
- Slackware: 14.1
- Kernel: 3.10.17-smp
- Desktop: Xfce 4.10
Re: [bash] problema con GREP
Effettivamente il mio comando era inutilmente ridondante
Ciao
Ciao
Re: [bash] problema con GREP
mi spiace per voi, ma quello scriptino ha problemi se ci sono in ballo files con spazi
e anche usando i doppi apici in modo naïve
invece lasciate fare il lavoro di glob extension alla shell
(tra l'altro l'ultima versione è oggettivamente più leggibile)
Codice: Seleziona tutto
$ echo "pippo" > 'a file con spazi'
$ echo "pippo" > 'b file con spazi'
$ cp `grep "pippo" [abc]* -l` ./tmp/
cp: impossibile fare stat di `a': No such file or directory
cp: impossibile fare stat di `file': No such file or directory
cp: impossibile fare stat di `con': No such file or directory
cp: impossibile fare stat di `spazi': No such file or directory
cp: impossibile fare stat di `b': No such file or directory
cp: impossibile fare stat di `file': No such file or directory
cp: impossibile fare stat di `con': No such file or directory
cp: impossibile fare stat di `spazi': No such file or directory
$
Codice: Seleziona tutto
$ cp "`grep "pippo" [abc]* -l`" ./tmp/
cp: impossibile fare stat di `a file con spazi\nb file con spazi': No such file or directory
$
Codice: Seleziona tutto
$ for file in [abc]*; do
if grep "pippo" "$file" > /dev/null; then
cp "$file" ./tmp;
fi;
done
$
- targzeta
- Iper Master
- Messaggi: 6629
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: [bash] problema con GREP
E perchè non questo?ZeD ha scritto:....
invece lasciate fare il lavoro di glob extension alla shell(tra l'altro l'ultima versione è oggettivamente più leggibile)...Codice: Seleziona tutto
$ for file in [abc]*; do if grep "pippo" "$file" > /dev/null; then cp "$file" ./tmp; fi; done $
Codice: Seleziona tutto
(IFS="\n\t"; cp `grep "pippo" [abc]* -l` ./tmp)
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
-
- Linux 2.x
- Messaggi: 413
- Iscritto il: dom 6 gen 2008, 11:46
- Slackware: 14.1
- Kernel: 3.10.17-smp
- Desktop: Xfce 4.10
Re: [bash] problema con GREP
Aggiungerei l'opzione "-w" a grep per non avere falsi positivi come pippolo, strapippo,ZeD ha scritto:E perchè non questo?
Codice: Seleziona tutto
(IFS="\n\t"; cp `grep "pippo" [abc]* -l` ./tmp)
Per quanto riguarda la leggibilità, penso che sia sempre e comunque soggettiva, quelli di matrix vedevano ragazze nello schermo verde .
impippo
- stan
- Linux 3.x
- Messaggi: 524
- Iscritto il: lun 25 dic 2006, 11:55
- Slackware: 12.1
- Kernel: 2.6.xx
- Desktop: Kde3
- Località: Bs
Re: [bash] problema con GREP
Offtopic: Spina, per lo slackbuild ati-packager....guarda che io non sono Neo!spina ha scritto: E perchè non questo?Per quanto riguarda la leggibilità, penso che sia sempre e comunque soggettiva, quelli di matrix vedevano ragazze nello schermo verde .Codice: Seleziona tutto
(IFS="\n\t"; cp `grep "pippo" [abc]* -l` ./tmp)
Spina
- targzeta
- Iper Master
- Messaggi: 6629
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: [bash] problema con GREP
Offtopic: Secondo me ti devo solo portare dall'oracolo .stan ha scritto:Offtopic: Spina, per lo slackbuild ati-packager....guarda che io non sono Neo!
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
Re: [bash] problema con GREP
Fallo in una directory dove l'elenco esteso di "[abc]*" supera i 1024 caratteri (limite massimo, in genere, per il buffer di argv dei programmi scritti in c) e capirai perchèspina ha scritto:E perchè non questo?SpinaCodice: Seleziona tutto
(IFS="\n\t"; cp `grep "pippo" [abc]* -l` ./tmp)