|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2006
Messaggi: 104
|
[Script Unix] ls-grep-mv
Ciao ragazzi, avrei bisogno di una mano per realizzare uno script che mi consenta di spostare da una dir_orig in una cartella chiamata string tutti i file di estensione .c che contengono la stringa <string> dove <string> è un parametro passato sulla riga di comando. Io ho due cartelle dir_orig e dir_dest nella quale si trova la cartella string.
Se a terminale stando nella dir_orig lancio il comando ls | grep string | mv `grep .c` /percorso_cartella_string ottengo cio' che voglio ma come faccio a realizzare questo comando con uno script? Che sintassi devo utilizzare...grazie per l'aiuto a priori... |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Oct 2007
Città: Terlago --> Trento
Messaggi: 88
|
Ciao puoi usare questa sintassi qui
Codice:
#!/bin/sh ls | grep string | mv `grep .c` /percorso_cartella_string fai un file eseguibile e poi lo lanci semplicemente con ./nome_script e verrà lanciato il comando ls e tutto il resto in un attimo Ciao
__________________
Coltivate Linux. Windows si pianta da solo: Why Linux is better! -"Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe...?" -"Il cestino" |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Dec 2006
Messaggi: 104
|
Ho provato questa soluzione ma ottengo un errore di questo tipo:
mv: missing destination file operand after `/home/stella/Lab_so/Script/dir_dest/string' Try `mv --help' for more information. In pratica in Script io ho sia dir_orig sia dir_dest all'interno del quale c'è string, ma è come se andando ad eseguire quelle istruzioni non sa dove deve recuperare le info per fare il grep. Se io da dir_orig in cui ho i file di prova per testare il funzionamento del comando, lancio il comando di cui prima Codice:
s | grep string | mv `grep .c` /percorso_cartella_string |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Oct 2007
Città: Terlago --> Trento
Messaggi: 88
|
Vediamo se ho capito bene il problema che hai....prova a fare così:
Codice:
ls dir_orig/ | grep string | mv `grep .c` /percorso_cartella_string
__________________
Coltivate Linux. Windows si pianta da solo: Why Linux is better! -"Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe...?" -"Il cestino" |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2007
Messaggi: 1270
|
#!/bin/bash
cd dir_orig fileList=`ls *.c | grep $1` mv $fileList dir_dest per ottenere il valore del primo parametro passato sulla riga di comando leggi la variabile $1. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:34.



















