Foros del Web » Administración de Sistemas » Unix / Linux »

Problema "basico" con GREP sobre fichero

Estas en el tema de Problema "basico" con GREP sobre fichero en el foro de Unix / Linux en Foros del Web. Hola como andan? Tengo un problema para leer una cosa de otro fichero... les dejo el codigo a ver si alguien me lo puede solucionar ...
  #1 (permalink)  
Antiguo 08/10/2012, 19:12
 
Fecha de Ingreso: octubre-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Problema "basico" con GREP sobre fichero

Hola como andan? Tengo un problema para leer una cosa de otro fichero... les dejo el codigo a ver si alguien me lo puede solucionar

Por un lado, el archivo del cual luego voy a querer leer una palabra, se llama ficherob (generado por el gedit de linux) y tiene lo siguiente adentro
asadsda
tools
Workspace

Por el otro, tengo mi script actual, llamado ejercicio, que dice lo siguiente:
#!/bin/bash

#Prueba para ver si puedo leer cosas de otro fichero en este
#caso la palabra ¨tools¨

ARCHIVO=$HOME/ficherob

if (´grep 'tools' $ARCHIVO´ -eq 0) ; then
echo 'Existia la palabra Tools en el otro fichero'
fi

La consola cuando ejecuto, con todos los permisos, un ./ejercicio me devuelve que en la línea del grep hay una orden no encontrada.
Si le saco las comillas a la expresión, que no existe el archivo o directorio y 0: no existe el archivo o directorio.

¿En qué me estoy equivocando? Probé el tema comillas, poner simples, sacárselas a grep, etc... pero sigue todo igual... si alguien me puede ayudar lo agradecería mucho!
Problema de permisos no creo que sea...

Saludos
  #2 (permalink)  
Antiguo 09/10/2012, 09:01
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema "basico" con GREP sobre fichero

¿en qué te estás equivocando? ¡en que el if de BASH no lleva paréntesis!
Código bash:
Ver original
  1. # -q hace que grep no emita nada a la pantalla, solamente interesa el código de error
  2. if grep -q tools $archivo; then
  3.     ...
  4. fi
o
Código bash:
Ver original
  1. grep tools $ARCHIVO
  2. # $? guarda el código de salida del último comando
  3. if [ $? -eq 0 ]; then
  4.     ...
  5. fi
  #3 (permalink)  
Antiguo 09/10/2012, 12:28
 
Fecha de Ingreso: octubre-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problema "basico" con GREP sobre fichero

Jaja tenés razón! Mil gracias.. me volví loco buscando el error y no lo encontraba jaja, muchas gracias. Si, la de guardar el código de retorno de la última instrucción también lo podría haber hecho.

Y por ejemplo si yo quiero buscar en otro archivo si algo esta funcionando o no con un ON/OFF y me quiero traer el path dependiendo del estado.. es decir:
Path off
Path off
Path on

Con grep busco donde diga on, pero puedo traerme el path ese que aparece ahí como resultado? Tendría que usar algún FIND?

Gracias!

Última edición por lugue2011; 09/10/2012 a las 14:57
  #4 (permalink)  
Antiguo 10/10/2012, 06:41
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema "basico" con GREP sobre fichero

de forma predeterminada GREP te muestra el nombre del archivo en el que encuentra algo, así que a menos que haya entendido mal la pregunta, bastaría con
Código bash:
Ver original
  1. grep -E "on|off" *
o, si los archivos están en más de una carpeta:
Código bash:
Ver original
  1. find carpeta -exec grep -E "on|off" {} +


Saludos.
  #5 (permalink)  
Antiguo 12/10/2012, 01:58
 
Fecha de Ingreso: octubre-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problema "basico" con GREP sobre fichero

MMmm mirá, lo que preguntaba era si por ejemplo vos tenés un script donde dice:

"Hola on
Chau off
Como on
Estas off"

Y yo desde mi script leo ese script que te puse antes con grep, quería ver si podía leyéndolo, devolver eso que está "ANTES" en la línea que diga on ( o un vector con cada cosa , si hay varias que digan on.

Por ejemplo en el caso anterior, devolver a mi "script" las palabras "HOLA" y "COMO" (que les sigue un on)
Esa era básicamente la pregunta. O tendría que ser una función dentro de mi script que haga un grep a otro script, si devuelvo argumentos como en este caso?
Abrazo! Y gracias!
  #6 (permalink)  
Antiguo 12/10/2012, 06:39
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema "basico" con GREP sobre fichero

Código bash:
Ver original
  1. grep on archivo.txt |cut -d" " -f 1
  #7 (permalink)  
Antiguo 13/10/2012, 19:27
 
Fecha de Ingreso: octubre-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problema "basico" con GREP sobre fichero

A la última instrucción le tuve que agregar un tr -s ' ' antes porque sino me decia que el cut y el delimitador solo esperaba 1 caracter

Mil gracias :P Cualquier cosa te vuelvo a contactar je

Etiquetas: bash, basico, fichero, grep, ip, linux, permisos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:54.