|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2002
Città: Imperia
Messaggi: 603
|
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
__________________
....Nel dubbio non mollare.... |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2004
Messaggi: 9516
|
1) avere l'elenco dei file contenenti "parola"
find /directory-esempio -type f -exec grep -l "parola" {} \; ..... (... to be continued ...) |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
Quote:
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
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ Ultima modifica di HexDEF6 : 10-03-2009 alle 13:35. |
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2002
Città: Imperia
Messaggi: 603
|
Quote:
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 ?
__________________
....Nel dubbio non mollare.... |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
metti una / alla fine della dir di destinazione
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2002
Città: Imperia
Messaggi: 603
|
mi dice la stessa identica cosa...
__________________
....Nel dubbio non mollare.... |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
lancia solo il:
grep -l parola * se come risultato non c'e' niente, il problema e' quello!
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
|
Codice:
grep -l parola * | xargs -l -I{} mv "{}" /nuovadir
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella” |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Nov 2002
Città: Imperia
Messaggi: 603
|
Quote:
![]() e grazie a tutti quelli che hanno risposto!
__________________
....Nel dubbio non mollare.... |
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
Quote:
per curiosita' mi provi questo: mv $(grep -l parola * | xargs) /dir/destinazione/
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
|
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.
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella” |
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
Quote:
![]()
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:09.