buscar una palabra dentro de una cadena en BASH (SOLUCIONADO)

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
elistraus
Forista Nuevo
Forista Nuevo
Mensajes: 5
Registrado: Vie Nov 04, 2011 10:14 pm

buscar una palabra dentro de una cadena en BASH (SOLUCIONADO)

Mensaje por elistraus » Vie Nov 04, 2011 10:32 pm

Saludos a toda la comunidad,
Quiero ver si me pueden ayudar en esto:
Tengo un variable que es una cadena y quiero buscar una palabra dentro de ella, con que comando la puedo hacer, ejemplo:

"me he registrado recien al este foro que es al 100%,,, muy
bueno excelente
espero aprender -- mucho --"

la cadena tiene de todo, saltos de lineas, espacion y caracteres especiales, entonces lo que yo quiero es rescatar el "100%" y almacenarla en una variable, he tratado con sed, con el cut y no hayo como almacenarla,,,

Saludos!!!
fpuga
Forista Mayor
Forista Mayor
Mensajes: 798
Registrado: Sab Ago 25, 2007 7:00 am
Ubicación: Galicia - España
Contactar:

Re: buscar una palabra dentro de una cadena en BASH

Mensaje por fpuga » Sab Nov 05, 2011 12:41 pm

No das muchas pistas de que patrón necesitas pero bueno sería algo así

Código: Seleccionar todo

fpuga@Azul:~$ A="me he registrado recien al este foro que es al 100%,,, muy
bueno excelente
espero aprender -- mucho --"
fpuga@Azul:~$ B=`echo "$A" | grep -o '100%'`
fpuga@Azul:~$ echo $B
100%
Mi blog: [url=http://conocimientoabierto.es]Conocimiento Abierto[/url]
Avatar de Usuario
ramonovski
Forista Medio
Forista Medio
Mensajes: 398
Registrado: Lun Sep 06, 2010 4:30 am

Re: buscar una palabra dentro de una cadena en BASH

Mensaje por ramonovski » Sab Nov 05, 2011 5:25 pm

O para buscar cualquier número que tenga porcentaje:

Código: Seleccionar todo

echo varUno=`echo "${VariableConLaCadena}" | grep -o '[[:digit:]]*%'`
scrotwm@FreeBSD
pekwm@Sabayon
::vim::zsh::urxvtd|blog::dotfiles::last.fm
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1805
Registrado: Dom Oct 10, 2004 7:00 am

Re: buscar una palabra dentro de una cadena en BASH

Mensaje por neurus » Sab Nov 05, 2011 5:59 pm

Es casi seguro que el usuario no volverá. Parece un típico caso de "me encargaron esta tarea y no tengo idea de nada". Tanto, que ni el enunciado tiene sentido.

Sin embargo, con la solución que propone ramonovski acá arriba le da algún sentido (haciendo un enorme esfuerzo de interpretación) al planteo del usuairo.

Tal como está el planteo en este post (ni indicios de expresiones regulares, variables o input), la manera más simple de conseguir el resultado esperado es: echo 100%.
elistraus
Forista Nuevo
Forista Nuevo
Mensajes: 5
Registrado: Vie Nov 04, 2011 10:14 pm

Re: buscar una palabra dentro de una cadena en BASH

Mensaje por elistraus » Dom Nov 06, 2011 3:54 am

Que gran equivocacion de neuros, es de muy mala educacion especular a las personas, mas encima soy nuevo en el foro y ya me estan criticando,,, pero bueno,,,

@fpuga muuuuchas gracias te pasaste, la verdad estoy recien en linux y en su linea de comando, por eso acudí a este foro porque uds ya son secos, espero serlo igual en un tiempo,, muchas gracias te pasaste de verdad!!!

@ramonovski gracias por la ayuda compadre lo archivo a mis tips,,, muchas garcias,,,

Lo voy a probar y de ahí lo doy por solucionado,,,

Saludos a la comunidad
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: buscar una palabra dentro de una cadena en BASH (SOLUCIONADO)

Mensaje por niky45 » Dom Nov 06, 2011 4:01 pm

elistraus escribió:Que gran equivocacion de neuros, es de muy mala educacion especular a las personas, mas encima soy nuevo en el foro y ya me estan criticando,,, pero bueno,,,
sin animos de meterme donde no me llaman, pero la verdad es que 8 de cada 10 usuarios que aparecen con ese tipo de preguntas, no vuelven a aparecer. no era ningun desproposito por tanto, pensar que eras otro mas. (que leches, neurus es asi.... :? yo prefiero sus ironias, que no que se vaya y no nos de respuestas. :D )

:)
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
elistraus
Forista Nuevo
Forista Nuevo
Mensajes: 5
Registrado: Vie Nov 04, 2011 10:14 pm

Re: buscar una palabra dentro de una cadena en BASH (SOLUCIONADO)

Mensaje por elistraus » Dom Nov 06, 2011 11:29 pm

Vale niky45 todabia me queda un largo camino, así por aqui estaré siempre preguntado cosillas que se me vayan de mis ojos,,, por mientras leo los tutoriales de aqui,,, vale??

un saludos a la comunidad!!
Avatar de Usuario
ramonovski
Forista Medio
Forista Medio
Mensajes: 398
Registrado: Lun Sep 06, 2010 4:30 am

Re: buscar una palabra dentro de una cadena en BASH (SOLUCIONADO)

Mensaje por ramonovski » Lun Nov 07, 2011 1:16 am

A la próxima que tengas una duda similar, procurar postear cosas como:
  • Qué has intentado
  • Qué herramientas has utilizado
  • Cómo piensas que puedes lograrlo
Y como extra, si quieres que te resuelvan el problema o que te enseñen a solucionarlo tu mismo, generalmente los usuarios de 1 post piden que les hagan el trabajo.
scrotwm@FreeBSD
pekwm@Sabayon
::vim::zsh::urxvtd|blog::dotfiles::last.fm
elistraus
Forista Nuevo
Forista Nuevo
Mensajes: 5
Registrado: Vie Nov 04, 2011 10:14 pm

Re: buscar una palabra dentro de una cadena en BASH (SOLUCIONADO)

Mensaje por elistraus » Lun Nov 07, 2011 2:39 am

Bueno vale, procuraré hacerlo como dices,igual aunque sea tarde te voy a comentar lo que estaba haciendo,,

Tengo que mandar un archivo desde un servidor a otro, los dos sevidores estan sobre linux (RED-HAT 5.5), yo me conecto de forma remota por ssh a los dos servidores, desde linux igual, tengo la distro ubunto, yo soy nuevo en linux, así que decidí hacer un scripts que se ejecutaré automaticamente, para que se ejecute automaticamente ocupo el cron y en el script ocupo el scp y los comandos expect para la contraseña,,,
La cosa es que tenía que hacer un log en la cual necesitaba saber si se habia conectado y coipiado el archivo, entonces como el scp me estrega un string de descarga, quería tener la manera de encontrar el 100% así median sentencias de control mando el mensaje al log si tubo exito o no la copia y estaba atorado ahí que no sabia almacenar la variable,,, pero gracias a uds lo pude hacer,,,

Como digo para la proxima seré mas detallado en mis consultas,,,

Saludos!!!!!
fpuga
Forista Mayor
Forista Mayor
Mensajes: 798
Registrado: Sab Ago 25, 2007 7:00 am
Ubicación: Galicia - España
Contactar:

Re: buscar una palabra dentro de una cadena en BASH (SOLUCIONADO)

Mensaje por fpuga » Lun Nov 07, 2011 2:32 pm

La mayoría de comandos en linux dejan al salir un código de error. Ese código es accesible mediante la variable $? o bien directamente lanzando el comando desde un if.

Por ejemplo

Código: Seleccionar todo

fpuga@ELNATH:/tmp$ echo "foo" > foo.txt
fpuga@ELNATH:/tmp$ if grep -q 'foo' foo.txt ; then echo "encontrado" ; else echo "no encontrado" ;fi 
encontrado
fpuga@ELNATH:/tmp$ if grep -q 'Esto no esta' foo.txt ; then echo "encontrado" ; else echo "no encontrado" ;fi 
no encontrado
Lo que tienes que hacer es algo parecido pero en lugar del comando llamar a grep dentro del if llamas a scp
Mi blog: [url=http://conocimientoabierto.es]Conocimiento Abierto[/url]
elistraus
Forista Nuevo
Forista Nuevo
Mensajes: 5
Registrado: Vie Nov 04, 2011 10:14 pm

Re: buscar una palabra dentro de una cadena en BASH (SOLUCIONADO)

Mensaje por elistraus » Lun Nov 07, 2011 8:12 pm

[quote=Lo que tienes que hacer es algo parecido pero en lugar del comando llamar a grep dentro del if llamas a scp[/quote]


aaaaahh, que bien, gracias,,,

Una pregunta, mira resulta que estoy dando una orden de ejecución a mi scripts con cron, pero tengo problemas con darle la ruta,,, me explico al dar y ejecutar mi archivo .sh con

./copiador.sh
funciona de maravilla

pero al darle la ruta del archivo en la configuracion del crontab -e le doy

/home/luis/Escritorio/copiador.sh

y no lo pilla :(, entonces probe copiando la ruta desde otro lugar y no sale no pilla el archivo no se que hago mal,,, haber si me das o me dan una mano,,,

Saludos

Editado -- Lun Nov 07, 2011 2:12 pm --

ya lo solucione lo sorry era capa 8 :) era porque al archivo que comprimo lo estaba nombrando como si estubiera en el directorio y no le estaba dando la ruta

bkn!!!

lo he logrado

he hecho mi primer scripts en linux

Gracias a todos

Saludos
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje