The UNIX and Linux Forums  
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.

Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



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
Eliminar el directorio que tiene caracteres especiales datherriault UNIX for Dummies Preguntas y Respuestas 12 01-14-2009 05:53 PM
eliminar caracteres especiales y Unicode shantanuo UNIX for Dummies Preguntas y Respuestas 1 12-05-2008 09:16 AM
Dura eliminar caracteres de una cadena chriss_58 Programación de scripts de shell y 6 11-28-2008 06:07 AM
Ayuda con buscar y reemplazar w / cadena que contiene caracteres especiales CAGIRL UNIX for Dummies Preguntas y Respuestas 4 10-07-2008 08:13 PM
Añadir cadena tras otra cadena con caracteres especiales heliode Programación de scripts de shell y 2 03-21-2008 08:06 AM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 12-04-2008
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Usuario Registrado
  
 

Fecha: noviembre 2008
Lugar: diversos
Puestos: 188
Question Eliminar caracteres especiales de la cadena

Hola,
Quisiera escribir un script que elimina cualquier conjunto de caracteres de cualquier cadena. El primer argumento sería la cadena, el segundo argumento sería el de eliminar caracteres. Por ejemplo:
Código:
$ myscript "My name's Santiago. What's yours?" "atu"
My nme's Snigo. Wh's yors?
Yo escribí el siguiente código:
Código:
$ cat myscript
ans=$1
for (( i=0; i<${#2}; i++ )); do
    ans=${ans//${2:$i:1}/}
done
echo "$ans"
Pero no funciona con los siguientes caracteres especiales: #% *? \
¿Hay alguna manera más sencilla de hacerlo?
¿Cómo puedo hacer que funcione con todos los personajes?

Gracias de antemano
Santiago
  #2 (Enlace permanente)  
Old 12-04-2008
Wolfclaw Wolfclaw is offline
Usuario Registrado
  
 

Fecha: agosto 2008
Puestos: 5
Trate de pasar los caracteres especiales con una \ delante.
Por otro lado, ¿por qué no simplemente usar expresiones regulares con sed o perl etc?
  #3 (Enlace permanente)  
Old 12-04-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Fecha: febrero 2007
Mensajes: 4.312
O simplemente con tr. Compruebe la opción-d en la página de manual.

Recuerdos
  #4 (Enlace permanente)  
Old 12-04-2008
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Usuario Registrado
  
 

Fecha: noviembre 2008
Lugar: diversos
Puestos: 188
Cita:
Publicado originalmente por Franklin52 View Post
O simplemente con tr. Compruebe la opción-d en la página de manual.
Gran! El único personaje que no funcionan, pero aquí es backslah mi nueva solución:
Código:
~$ cat myscript
echo "$1" | tr -d "${2//\\/\\\\}"
~$ myscript 'weird string !"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' ' !"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~'
            <---------------------- $1 ----------------------> <---------------- $2 ---------------->
weirdstring
~$
Muchas gracias
  #5 (Enlace permanente)  
Old 07-05-2009
summer_cherry summer_cherry is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: junio 2007
Ubicación: Beijing China
Mensajes: 1.088
Código:
echo "My name's Santiago. What's yours?" | tr -d "atu"
  #6 (Enlace permanente)  
Old 12-04-2008
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Usuario Registrado
  
 

Fecha: noviembre 2008
Lugar: diversos
Puestos: 188
Cita:
Publicado originalmente por Wolfclaw View Post
Trate de pasar los caracteres especiales con una \ delante.
Por otro lado, ¿por qué no simplemente usar expresiones regulares con sed o perl etc?
Eso es exactamente lo que yo estaba pidiendo! Estoy seguro de que hay una manera más sencilla de hacerlo ... Pero cómo?
No puedo pasar los caracteres especiales con una barra porque mi script lee el segundo argumento de carácter por carácter. Por lo tanto, si es $ 2 "\ #", el guión primero tratará de reemplazar \ (y no) y luego tratar de reemplazar # (y no demasiado).
Cualquier otra idea?
  #7 (Enlace permanente)  
Old 12-04-2008
Wolfclaw Wolfclaw is offline
Usuario Registrado
  
 

Fecha: agosto 2008
Puestos: 5
por alguna razón su trabajo con comillas simples en la línea de comando argumentos. No sé por qué esto es, aunque se encoge de hombros * *
Reply

Marcadores

Etiquetas
script de shell, de secuencias de comandos de shell, str, de secuencias de comandos de Unix, bases de secuencias de comandos de Unix

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 07:10 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0