The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Ridenominazione di più file jayell Shell scripting e di programmazione 7 01-12-2009 04:27 PM
Ridenominazione di più file Jazmania Shell scripting e di programmazione 6 01-02-2009 02:16 PM
Rinominare file multipli dhiren_shah UNIX for Dummies Domande & Risposte 2 09-12-2008 01:23 AM
Ridenominazione di più file rmayur UNIX for Dummies Domande & Risposte 6 02-26-2004 04:40 AM
Ridenominazione di più file jxh461 Shell scripting e di programmazione 4 04-01-2003 06:25 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 01-02-2009
shekhar_v4 shekhar_v4 is offline
Utente Registrato
  
 

Iscriviti Data: gennaio 2009
Interventi: 17
Ridenominazione di file (file multipli)

Salve,

Ho una directory con nomi di file come ABC20090101AXY.txt, ABC20090102BZ.txt, ecc ABC20090101COF.txt Le cifre rappresentano i nomi dei file la data. Voglio per rinominare i file AXY.txt, BZ.txt e COF.txt

Ho provato con questo codice.

MyFile \u003d data 'ABC +% Y% m% d'
for i in *. txt
fare
mv $ i `echo $ i | sed 's / MyFile $ / /' `
fatto

Ma il suo messaggio di

mv: ABC20090101AXY.txt e ABC20090101AXY.txt sono identici

Can u help me trovare il problema.

Saluti,
Shekhar
  #2 (permalink)  
Old 01-02-2009
in2nix4life's Avatar
in2nix4life in2nix4life is offline
Utente Registrato
  
 

Iscriviti Data: ottobre 2007
Località: East Coast
Interventi: 58
Se avete Perl installato, questo può aiutare a:

per x in *. txt; do mv $ x `echo $ x | perl -pe 's / ^ \ w + \ d +(.*)/$ 1 /' `; done

Hope this helps.
  #3 (permalink)  
Old 01-02-2009
Christoph Spohr Christoph Spohr is offline
Utente Registrato
  
 

Iscriviti Data: Sep 2008
Interventi: 205
Salve,

variabili di shell all'interno di''non vengono espanse. Allora qui

Codice:
mv $i `echo $i | sed 's/$myfile//'`
$ MyFile non sarà sostituita dalla "data 'ABC +% Y% m% d'".

Utilizzare "..." o no sed a tutti. Shell-ins sono sufficienti. Prova:
Codice:
mv $i ${i/200[7-9][0-1][0-9][0-3][0-9]/}
HTH Chris
  #4 (permalink)  
Old 01-03-2009
reddysiva reddysiva is offline
Utente Registrato
  
 

Iscriviti Data: dicembre 2008
Interventi: 11
Prova questo
MyFile \u003d $ (date '+ ABC% Y% m% d')
for i in *. txt
fare
mv $ i `echo $ i | sed "s / MyFile $ / /" `
fatto

i thik u didnt uso indietro tic o $ () per impostare MyFile variabile.
a spendere $ MyFile uso "al posto di '

Ho provato questo
a \u003d $ (date '+ ABC% Y% m% d')

echo ABC20090103AXY.txt | sed 's / $ a / / g'
ABC20090103AXY.txt

echo ABC20090103AXY.txt | sed "s / $ a / / g"
AXY.txt

echo '$ aABC20090103AXY.txt' | sed "s / $ a / / g"
$ aAXY.txt

echo '$ aABC20090103AXY.txt' | sed 's / $ a / / g'
ABC20090103AXY.txt
  #5 (permalink)  
Old 01-05-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Utente Registrato
  
 

Join Date: Sep 2006
Messaggi: 2.530
Citazione:
Originalmente inviato da shekhar_v4 View Post
Salve,

Ho una directory con nomi di file come ABC20090101AXY.txt, ABC20090102BZ.txt, ecc ABC20090101COF.txt Le cifre rappresentano i nomi dei file la data. Voglio per rinominare i file AXY.txt, BZ.txt e COF.txt

Ho provato con questo codice.

MyFile \u003d data 'ABC +% Y% m% d'
for i in *. txt
fare
mv $ i `echo $ i | sed 's / MyFile $ / /' `
fatto

Ma il suo messaggio di

mv: ABC20090101AXY.txt e ABC20090101AXY.txt sono identici

Can u help me trovare il problema.

Saluti,
Shekhar
se si dispone di Python e può utilizzare, ecco una pronto script si può usare. Esempi d'uso
Codice:
# ls -1
ABC20090101AXY.txt
ABC20090101COF.txt
ABC20090102BZ.txt

# filerenamer.py -p "ABC\d+" -e "" -l "ABC*.txt"
==>>>>  [ /home/ABC20090101COF.txt ]==>[ /home/COF.txt ]
==>>>>  [ /home/ABC20090101AXY.txt ]==>[ /home/AXY.txt ]
==>>>>  [ /home/ABC20090102BZ.txt ]==>[ /home/BZ.txt ]
eliminare i "-l" per fare effettivo rinominare.
  #6 (permalink)  
Old 01-05-2009
freizl freizl is offline
Utente Registrato
  
 

Iscriviti Data: novembre 2008
Interventi: 3
Supponendo che le "ABC20090102" stringa di lunghezza fissa.
E sto usando sh shell.

Codice:
ls -1 *.txt | awk '{print "mv", $1, substr($1,12) }' | sh

Ultimo a cura di freizl; al 01/05/2009 04:55 AM..
  #7 (permalink)  
Old 01-05-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Utente Registrato
  
 

Join Date: Sep 2006
Messaggi: 2.530
Citazione:
Originalmente inviato da freizl View Post
Supponendo che le "ABC20090102" stringa di lunghezza fissa.
E sto usando sh shell.

Codice:
ls -1 *.txt | awk '{print "mv", $1, substr($1,12) }' | sh
essa, inoltre, non è necessario usare ls e sh, facendo uso di FILENAME variabile
Codice:
awk '{ system("mv " FILENAME" " substr(FILENAME,1,12) )}' ABC*.txt
non testato.
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 05:44 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0