View Full Version : Bash script HELP!!
Salve a tutti. Devo scrivere uno script di shell che faccia il seguente "lavoro"
Ho una directory con N file. Alcuni contengono al loro interno la parola "parola". Devo fare in modo che lanciando questo script i file che la contengono vengano spostati in un altra directory, mentre quelli che non la contengono rimangano li
qualcuno mi sa aiutare ?
grazie in anticipo
1) avere l'elenco dei file contenenti "parola"
find /directory-esempio -type f -exec grep -l "parola" {} \;
..... (... to be continued ...)
1) avere l'elenco dei file contenenti "parola"
find /directory-esempio -type f -exec grep -l "parola" {} \;
..... (... to be continued ...)
un bel:
mv *parola* /dir/destinazione
non basta?
EDIT: ops... dipende da cosa intende per "contengono" (io pensavo al nome del file...)
nel caso si intenda dentro i file:
mv $(grep -l parola *) /dir/destinazione
un bel:
mv *parola* /dir/destinazione
non basta?
EDIT: ops... dipende da cosa intende per "contengono" (io pensavo al nome del file...)
nel caso si intenda dentro i file:
mv $(grep -l parola *) /dir/destinazione
si contengono è inteso dentro il file.
stefano@nasello:~/aaaa/PRD.20091302$ mv $(grep -l parola *) /home/stefano/parole
mv: manca l'operando per il file di destinazione dopo `/home/stefano/parole'
Usare "mv --help" per ulteriori informazioni.
mi dice questo... mi sai dire come mai ?
metti una / alla fine della dir di destinazione
mi dice la stessa identica cosa...
mi dice la stessa identica cosa...
lancia solo il:
grep -l parola *
se come risultato non c'e' niente, il problema e' quello!
gurutech
10-03-2009, 14:40
grep -l parola * | xargs -l -I{} mv "{}" /nuovadir
grep -l parola * | xargs -l -I{} mv "{}" /nuovadir
ok fatto grazie ! :D
e grazie a tutti quelli che hanno risposto!
ok fatto grazie ! :D
e grazie a tutti quelli che hanno risposto!
boh... a me continua a funzionare pure il "mio" metodo
per curiosita' mi provi questo:
mv $(grep -l parola * | xargs) /dir/destinazione/
gurutech
11-03-2009, 22:46
boh... a me continua a funzionare pure il "mio" metodo
per curiosita' mi provi questo:
mv $(grep -l parola * | xargs) /dir/destinazione/
potrebbe funzionare, ma potrebbe anche incartarsi se mv interpreta i parametri di grep (primo post che hai fatto) o di xargs (questo post) come su una unica linea di comando. credo dipenda dalla versione di bash. Inoltre $(comando) se non sbaglio va bene solo in bash, se per caso usa una shell diversa non interpreterebbe correttamente.
potrebbe funzionare, ma potrebbe anche incartarsi se mv interpreta i parametri di grep (primo post che hai fatto) o di xargs (questo post) come su una unica linea di comando. credo dipenda dalla versione di bash. Inoltre $(comando) se non sbaglio va bene solo in bash, se per caso usa una shell diversa non interpreterebbe correttamente.
hai ragione... il fatto e' che sono bash dipendente :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.