|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2004
Messaggi: 124
|
Sostituzione di stringhe nel nome del file
Un saluto a tutti voi...
... essendo un eterno niubbio su questo universo di Linux, vengo a voi per chiedere alcune dritte. Ho una cartella dove ci finiscono dei file... vorrei rimuovere parte del nome dei file. I file in origine hanno questa struttura di nome: XYZ|ABC|QWERTY|ASDF.Parte.che.mi.interessa.doc la lunghezza di XYZ, ABC, QWERTY e ASDF è variabile. Come faccio a rinominare il file in "Parte.che.mi.interessa.doc"?!? Fantascenza? Un saluto by Elia |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2004
Messaggi: 1209
|
Semplicissimo.
Ti basta una riga cosi' ls *doc|while read f; do mv $f `echo $f|cut -d. -f2-$NF`; done Enjoy n.b. Ovviamente questo ti rinomina tutti i file .doc presenti nella directory, quindi occhio a non sovrascrivere.
__________________
...Ordunque... Ultima modifica di Psycotic : 15-04-2009 alle 12:20. Motivo: n.b. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2006
Messaggi: 1525
|
Se usi kde c'e' una comodissima gui che ti permette di fare praticamente di tutto: krename.
__________________
-)(- debian -)(- |
|
|
|
|
|
#4 | ||
|
Member
Iscritto dal: May 2004
Messaggi: 124
|
Quote:
Quote:
Un saluto e grazie!!! |
||
|
|
|
|
|
#5 | |
|
Moderatore
Iscritto dal: Feb 2003
Città: Anagni/Firenze
Messaggi: 9133
|
Quote:
puoi per favore spiegare i passo-passo la stringa? In questo modo anche chi è meno avvezzo comprende cosa fa il comando (in maniera che non si facciano le cose a pappagallo Grazie Un saluto a tutti... masand
__________________
Regole Sezione Linux - [Ubuntu] HWupgrade Clan - Installare Ubuntu 13.10 64bit su Asus N56JR |
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: May 2004
Messaggi: 124
|
@Psycotic
il comando mi restituisce l'errore: Codice:
read: cannot run builtin as part of pipe |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
Quote:
ls *doc|while read f; do mv $f `echo $f|cut -d. -f2-$NF`; done fai: for f in $(ls *.doc); do mv $f $(echo $f | cut -d. -f2-$NF); done Ciao per la spiegazione: Codice:
for f in $(ls *.doc) //per tutti i file che finiscono in .doc do //fai: mv $f $(echo $f | cut -d. -f2-$NF) //rinomina il file $f (uno di quelli che proviene dall' ls *.doc) in echo $f | cut -d. -f2-$NF (che praticamente stampa lo stesso nome di file e taglia il tutto quello che c'e' prima del primo . ) done //fatto
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: May 2004
Messaggi: 124
|
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jan 2006
Messaggi: 1525
|
Quote:
__________________
-)(- debian -)(- |
|
|
|
|
|
|
#10 |
|
Member
Iscritto dal: May 2004
Messaggi: 124
|
|
|
|
|
|
|
#11 |
|
Member
Iscritto dal: May 2004
Messaggi: 124
|
e questo?
con un curl di un sito internet, mi viene giù una lista che vado a salvare in un file.
4 campi separati da uno spazio, l'ultimo campo è il nome dei file. Problema, alcuni numi di file hanno degli spazzi!!! #000 NomeCognome Dimensione File.txt #001 NomeCognome Dimensione File da rinominare.txt #001 NomeCognome Dimensione File_da_rinominare.txt Possibile dirgli di sostituire gli spazi SOLO nella variabile $4? |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
di getto mi e' venuta sta schifezza:
Codice:
cat file_da_modificare.txt | awk '{nome_file="" ; for (i=1; i<=NF; i++) {if (i > 3) {nome_file = nome_file "_" $i} else printf $i " "} ; print substr(nome_file, 2, length(nome_file))}' > file_modificato.txt
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:02.



















