![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| Cambiar el nombre de varios archivos | jayell | Programación de scripts de shell y | 7 | 01-12-2009 04:27 PM |
| Cambiar el nombre de varios archivos | Jazmania | Programación de scripts de shell y | 6 | 01-02-2009 02:16 PM |
| Cambiar el nombre de varios archivos | dhiren_shah | UNIX for Dummies Preguntas y Respuestas | 2 | 09-12-2008 02:23 AM |
| Cambiar el nombre de varios archivos | rmayur | UNIX for Dummies Preguntas y Respuestas | 6 | 02-26-2004 04:40 AM |
| Cambiar el nombre de varios archivos | jxh461 | Programación de scripts de shell y | 4 | 04-01-2003 07:25 PM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Cambiar el nombre de los archivos (varios archivos)
Hola,
Tengo un directorio con los nombres de archivos como ABC20090101AXY.txt, ABC20090102BZ.txt, etc ABC20090101COF.txt Los dígitos en los nombres de los archivos representan la fecha. Quiero cambiar el nombre de los archivos a AXY.txt, BZ.txt y COF.txt He intentado con este código. mi_archivo fecha \u003d '+ ABC% Y% m% d' for i in *. txt hacer mv $ i `echo $ i | sed 's / mi_archivo $ / /' ` hecho Pero su mensaje de que mv: ABC20090101AXY.txt y ABC20090101AXY.txt son idénticos Que me ayude para encontrar el problema. Recuerdos, Shekhar |
|
||||
|
Hola, dentro de las variables de shell''no se expandió. Así que aquí Código:
mv $i `echo $i | sed 's/$myfile//'` $ miarchivo no será sustituido por el de "fecha" ABC +% Y% m% d ' ". Utilice "..." o no sed en absoluto. Shell construido-ins son suficientes. Prueba: Código:
mv $i ${i/200[7-9][0-1][0-9][0-3][0-9]/}
Chris HTH |
|
||||
|
Prueba esta
mi_archivo \u003d $ (date '+ ABC% Y% m% d') for i in *. txt hacer mv $ i `echo $ i | sed "s / mi_archivo $ / /" ` hecho i thik u didnt uso posterior tics o $ () para establecer la variable miarchivo. para gastar $ miarchivo uso "en lugar de ' He intentado este 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 |
|
||||
|
Cita:
Código:
# 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 ] eliminar "-l" para hacer cambiar el nombre real. |
|
||||
|
Suponiendo que la "ABC20090102" cadena es de longitud fija. Y estoy usando sh shell. Código:
ls -1 *.txt | awk '{print "mv", $1, substr($1,12) }' | sh
Última edición por freizl; al 01-05-2009 04:55 AM.. |
|
||||
|
Cita:
Código:
awk '{ system("mv " FILENAME" " substr(FILENAME,1,12) )}' ABC*.txt
no probados. |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|