|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Padova
Messaggi: 4245
|
funzione per script...........
dovrei creare uno script che in automatico mi rinomini i nomi di file togliendo l'estensione (.plt) o togliendo una certa parte del nome di un file.
Esiste una funzione apposita o devo creare un programma ad-hoc in C? Grazie delle info. Ciao. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2003
Città: /dev/zero
Messaggi: 666
|
sicuramente si puo fare in modi piu semplici...
#!/bin/sh for i in `ls`; do echo $i | awk -F "." '{mv $i $1}' done; attento che se il file è invece una dir da qualche problema Questo vale solo per l'estensione per la parte del nome del file devi giochicciare con non ricordo che comando
__________________
Powered By Imac 27" , iPhone X and watch Series 5 Si sono un apple fan Ultima modifica di e-Tip : 22-04-2004 alle 23:24. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2003
Città: /dev/zero
Messaggi: 666
|
ah questo vale solo per l'estensione per la parte del nome del file devi giochicciare con non ricordo che comando
__________________
Powered By Imac 27" , iPhone X and watch Series 5 Si sono un apple fan Ultima modifica di e-Tip : 22-04-2004 alle 16:35. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Padova
Messaggi: 4245
|
Perchè non mi funziona
Questo è lo script che ho creato: #!/bin/sh for i in 'ls'; do echo $i | awk -F "." {mv $i $1} done; e questo è il risultato quando lo lancio: awk: cmd. line:2: (END OF FILE) awk: cmd. line:2: syntax error Purtroppo la pagina man di awk è in inglese e non proprio ben fatta, non riesco a capire na mazza di quello che mi vogliono spiegare su quella pagina. Generalmente riesco a capirne qualcosa, ma con quella di awk proprio non capisco nulla. Che tu sappia, esiste una guida in Italiano fatta bene che spieghi la sintassi segli script e i vari comandi? Grazie della disponibilità. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Morio Cho
Messaggi: 2596
|
Non funziona perche' usi gli accenti sbagliati.
Confronta questi due: Codice:
' ` Al massimo copia e incolla l'esempio di e-Tip. Guldo p.s.: una guida in italiano la trovi negli "appunti di informatica libera" di daniele giacomini.
__________________
Sono GULDO, non Guido! Cioè, certo che guido... Bé, insomma, avete capito ![]() Linux 2.6.26|Debian|Debian@Hwupgrade|Debian Clan|Solo Puffin ti darà forza e grinta a volontà! NERD rank 62|Milla Jovovich|大事な物はいつも形の無い物だけ Sito e Forum sul Giappone|La mia libreria su aNobii |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2003
Città: /dev/zero
Messaggi: 666
|
due errorini
il primo te l'ha detto guldo76 il secondo manca questo ' prima e dopo {mv $i $1} io ho scritto '{mv $i $1 }' tu hai scritto solo {mv $i $1} aggiungili
__________________
Powered By Imac 27" , iPhone X and watch Series 5 Si sono un apple fan |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Padova
Messaggi: 4245
|
Problema apostrofi, risolto.
Ho cambiato gli apostrofi e adesso quando eseguo lo script termina senza nessun errore, però senza nemmeno fare quello che in teoria dovrebbe fare. Ho provato a lanciare manualmente il seguente comando: echo pippo.plt | awk -F "." '{echo $1}' e mi ripresenta il prompt senza nessuna risposta. In teoria (se non mi sono dimenticato qualcosa) con questo comando dovrebbe restituirmi "pippo", sempre ammesso che non stia vaneggiando Grazie ancora per la disponibilità. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Aug 2003
Città: /dev/zero
Messaggi: 666
|
se al posto di echo metti print restituisce pippo
__________________
Powered By Imac 27" , iPhone X and watch Series 5 Si sono un apple fan |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Padova
Messaggi: 4245
|
Ho preso lo script e al posto di 'mv' ci ho messo 'print', il risultato è questo:
la cartella contiene i seguenti file: -rw-r--r-- 1 stefano users 0 Apr 22 22:22 123 -rwxrwxrwx 1 stefano users 68 Apr 23 17:23 aaa -rwxr-xr-x 1 stefano users 75 Apr 23 17:20 bbb -rw-r--r-- 1 stefano users 3 Apr 22 22:13 pippo.plg -rw-r--r-- 1 stefano users 3 Apr 22 22:13 pippo1 -rw-r--r-- 1 stefano users 4 Apr 22 22:13 pippo3.shl Se lancio lo script modificato con print il risultato è questo: 123123 aaaaaa bbbbbb pippo.plgpippo pippo1pippo1 pippo3.shlpippo3 Questo risultato mi ha fatto capire che il comando awk effettivamente fa il suo dovere ma sembra che il problema stia proprio nel comando {mv $i $1}. Visto che lo script con print mi fa vedere i nomi dei file attaccati ho provato a modificare in questo modo {mv $i " " $1} pensando che passasse in maniera errata gli argomenti a mv, ma non è servito a nulla. Come altra prova, ho provato a mettere davanti a mv il percorso completo (/bin/mv), ma senza nessun risultato positivo. Quello che mi domando è: se {print $i $1} funziona, perchè {mv $i $1} non deve funzionare? |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Padova
Messaggi: 4245
|
up
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Dec 2000
Messaggi: 1187
|
come complicarsi la vita quando e` semplice...
x cambiare le estensioni o una parte del nome (che e` la stessa cosa): Codice:
$ rename '.ext1' '.ext2' * togliere le estensioni o una parte (che e` la stessa cosa): Codice:
$ rename '.ext' '' * ecc... |
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Aug 2003
Città: /dev/zero
Messaggi: 666
|
infatti
Quote:
__________________
Powered By Imac 27" , iPhone X and watch Series 5 Si sono un apple fan |
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Padova
Messaggi: 4245
|
ma purtroppo io non sono certo che ext1 o ext2 abbiano sempre lo stesso valore, altrimenti l'avrei già fatto
Ciao. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:05.



















