Pagina 1 di 1
Piccolo script per tagliare/rinomire files
Inviato: dom 1 ott 2006, 11:19
da EmaDaCuz
Mi servirebbe creare una lista di alcuni file per avere una sorta di "catalogo".
I nomi di questi file hanno tutti una struttura comune
Vorrei arrivare ad avere solo la [Parte1-Parte2],senza estensione e senza intestazione.
Ho provato con
Codice: Seleziona tutto
awk '{ print $4 $5 $ $6 $7 $8 $9 $10 $11 }' <lista >prova.txt
ma mi elimina gli spazi tra le parole e rimane l'estensione.
Grazie mille,sperando in qualche dritta.
Inviato: dom 1 ott 2006, 12:10
da Paoletta
piccola dritta
Codice: Seleziona tutto
parte=`echo INTESTAZIONEParte1-Parte2.ESTENSIONE | grep -o Parte1-Parte2`
mv INTESTAZIONEParte1-Parte2.ESTENSIONE $parte
se ho tempo e mi dici esattamente che devi fare te lo scrivo io..
Inviato: dom 1 ott 2006, 17:53
da IceSlack
esisteva mmv anche s enon l'aggiornano dal 2001 funziona a meraviglia.........
Inviato: dom 1 ott 2006, 19:50
da EmaDaCuz
grazie paoletta
Allora,il nome dei file è sulla falsariga fi questo
E vorrei arrivare a
Non è urgente,ma se riuscite a darmi una mano....

Inviato: dom 1 ott 2006, 20:05
da absinthe
la butto lì in uno stato semi-comatoso e da win-xp (se funziona pretendo il nobel :P):
Codice: Seleziona tutto
EXT="tua_estensione"
for FILE in $LISTA_FILE; do
NAME=$(basename $FILE $EXT) #toglie l'estensione
NAME=$(cut -f2 -d \] $NAME) #toglie le parentesi quadre
NAME=${NAME:1} #toglie lo spazio che precede "Carbonio"
done
in realtà basterebbe sostituire le ultime 2 riche con :
se il testo nelle quadre è sempre lo stesso...
buonappetito

M
edit-----------------
però va aggiunto un altro comando alla fine del ciclo:
se no è inutile .
Inviato: lun 2 ott 2006, 14:05
da Paoletta
anche io ti do la mia dritta (ormai ho promesso...);
ti conviene dargli un nome senza estensione (altrimenti si rinomina da solo)
Codice: Seleziona tutto
#!/bin/bash
before="\[.*\] " #regexp intestazione
ext="\.*" #regexp estensione
ls -1 > fileScript
while read lista_file #per nomi con gli spazi
do
nome=$(echo "$lista_file" | sed "s/$before//g")
nome=$(echo "$nome" | sed "s/$ext//g")
if [ "$lista_file" != "$nome" ];then
mv "$lista_file" "$nome"
fi
done<fileScript
rm fileScript
Inviato: lun 2 ott 2006, 15:49
da EmaDaCuz
OK,grazie mille adentrambi.Adesso vedo se funziona.