temp; mv $ temp y; hecho y ha funcionado bien para buscar y reemplazar cadenas con nombres etc en todos los" />
![]() |
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.
|
|
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 |
| buscar y reemplazar una cadena en el directorio de archivos | koti_rama | Programación de scripts de shell y | 2 | 05-30-2008 03:48 AM |
| Buscar y reemplazar una cadena en múltiples archivos | pharos467 | UNIX for Dummies Preguntas y Respuestas | 2 | 11-05-2007 11:47 PM |
| Buscar y reemplazar en varios archivos (shell script) | jatins_s | Programación de scripts de shell y | 13 | 11-05-2007 02:11 PM |
| Buscar y sustituir los archivos en varias carpetas | lodey | Programación de scripts de shell y | 6 | 09-28-2007 02:00 AM |
| encontrar varios archivos y FTP en Korn Shell | lambjam | UNIX for Dummies Preguntas y Respuestas | 2 | 08-13-2007 10:50 PM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
script de shell para buscar y reemplazar cadena en múltiples archivos
He utilizado el siguiente script
cd ruta para y en el `ls *`; hacer sed "s / ABCD / DCBA / g" $ y> temp; temp mv $ y; hecho y funcionó bien para buscar y reemplazar cadenas con nombres etc en todos los archivos de la ruta. Estoy tratando de reemplazar una cadena que consiste en la ruta (ubicación de archivo) en lugar de decir ABCD tengo que sustituir c: / mydocuments / fotos para d: / mypics personal, como metacaracteres no será buscado en esta secuencia de comandos de Unix es que no para sustituir a la cadena que tiene un camino en el mismo. ahora es mi script cd ruta para y en el `ls *`; hacer sed "s / 'c: / mydocuments / fotos' /' d: / mypics / personal" / g "$ y> temp; temp mv $ y; hecho i cansado de dar la ruta entre comillas simples y dobles, pero veo el error sed: Comando ilegible: s / 'c: / mydocuments / fotos' /' d: / mypics personal / '/ g Y todo el contenido de los archivos en el camino se borran. También intentó utilizar las siguientes sed -- sed -e "s! AAA! BBB! g" sed e \u003d "+ s + AAA BBB + g" como la cadena ha / en la ruta de ubicación del archivo ¿Hay alguna otra forma de trabajar esto. Gracias |
|
||||
|
cansado
por debajo de la secuencia de comandos enviados error
sed: Comando ilegible: |
|
||||
|
Las comillas simples se caracteres ordinarios, cuando dentro de comillas dobles. Así que usted puede hacer esto:
echo "está bien" y esto no es un error o una cita abierta. Por lo tanto, poner una sola cita dentro de una cita sedexpresión está bien, pero no cita el texto entre ellos. El código anterior de Jean-Pierre se ve bien para mí. |
|
||||
|
Ahora se trabaja, uno de los desaparecidos _ es en mi sed comando.
2 Gracias a todos los que respondieron |
|
||||
|
buscar y reemplazar la codificación en perl
#! / usr / bin /perl
# # bash. / ff.pl - productos \ / opt \ / WebSphere5 - zuro \ / opt \ / was6mig \ / WebSphere5 base uso de archivos:: Busca; getopt uso:: Long; # $ dmPath \u003d "/ scratch / optcob / cells.dmgr.tmp"; # Modificar la Basepath con nuevo copiado WAS5 copiado ubicación. $ Basepath \u003d "/ opt/IBM/WAS6.1/IBMIHS/CI_CNV_CRD_HTTPServer"; $ dmPath \u003d "/ DM5"; # No se preocupe por ello Basepath $ \u003d "/ app/WebSphere6/profiles"; $ tmpf \u003d "/ tmp / tmpf"; ModFileByRegex sub ( my ($ Tok, $ repl, $ FPAT, $ ruta) \u003d (@_); my $ cnt \u003d 0; fwanted sub ( -f & & $ File:: Busca:: name \u003d ~ / $ FPAT / & & do ( open (INF, $ File:: Busca:: Nombre) | | die "no puede abrir archivos $:: Buscar:: Nombre: $!"; abierto (TMPF, "> $ tmpf") | | die "no puede abrir para escritura tmpf $: $!"; mi entrada \u003d @ <INF>; mi cambio de $ \u003d grep (s / $ Tok / $ repl / g) @ entrada; if ($ cambio> 0) ( INF estrecha; imprimir TMPF @ entrada; TMPF estrecha; print "actualización / guardar copia de $ Archivo:: Buscar:: nombre \ n"; cambiar el nombre del archivo $:: Buscar:: nombre, $ File:: Busca:: nombre. ". org"; imprimir `cp-p $ $ tmpf Archivo:: Buscar:: nombre \ n"; $ cnt + +; ) ) ) print "Ruta de búsqueda de $ $ para Tok en archivos denominados FPAT $ \ n"; encontrar (\ & fwanted, $ ruta); return ($ cnt); ) findDirByRegex sub ( my ($ Tok, $ repl, $ ruta) \u003d (@_); my $ cnt \u003d 0; quería sub ( -d & & $ File:: Busca:: name \u003d ~ / $ Tok [\ w \ .]*?$/ & & push @ DIRL, $ Archivo:: Buscar:: nombre; ) print "¿Buscas directorios llamado Camino de $ $ Tok \ n"; encontrar (\ & quería, $ ruta); while ($ _ \u003d pop @ DIRL) ( $ src \u003d $ _; s / $ Tok ([\ w \ .]*)?$/$ Repl $ 1 /; print "renombrar $ src, $ _ \ n"; cambiar el nombre de $ src, $ _ | | advierten "no puede cambiar el nombre de último archivo, por favor marque"; $ cnt + +; ) return ($ cnt); ) optctl% \u003d (); GetOptions (\% optctl, "productos \u003d s", "s \u003d mazorca", "dmgr", "base"); print "opciones: \ n \ n"; print "productos del sistema (fuente del sistema):". ($ optctl "productos"). "\ n";; print "zuro sistema (sistema de destino):". ($ optctl "mazorca"). "\ n"; print "Do Despliegue Manager \ n" if ($ optctl ( "dmgr") \u003d\u003d 1); impresión "Do Base WebSphere \ n" if ($ optctl ( "base") \u003d\u003d 1); print "\ n \ n"; if ($ optctl ( "dmgr") \u003d\u003d 1) ( print "actualizar el Administrador de implementaciones archivos XML \ n"; $ cnt \u003d ModFileByRegex ($ (optctl "productos"), ($ optctl "mazorca"), ".*", $ dmPath); print "$ cnt archivos XML se han actualizado \ n";) if ($ optctl ( "base") \u003d\u003d 1) ( print "la actualización de archivos XML WebSphere Base \ n"; $ cnt \u003d ModFileByRegex ($ (optctl "productos"), ($ optctl "mazorca"), $ ".*", Basepath); print "$ cnt archivos XML se han actualizado \ n";) if ($ optctl ( "dmgr") \u003d\u003d 1) ( print "Administrador de base de la actualización de Despliegue Directorio nombres \ n"; $ cnt \u003d findDirByRegex ($ (optctl "productos"), ($ optctl "mazorca"), $ dmPath); print "$ cnt nombres de directorio actualizado \ n";) if ($ optctl ( "base") \u003d\u003d 1) ( print "Directorio base de la actualización de WebSphere Nombres \ n"; $ cnt \u003d findDirByRegex ($ (optctl "productos"), ($ optctl "mazorca"), $ Basepath); print "$ cnt nombres de directorio actualizado \ n";) |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|