Linux/Unix Shell Scripting - Filtrar archivos

   
Vista:

Filtrar archivos

Publicado por LORENA (5 intervenciones) el 21/03/2014 20:08:03
Hola buen día! Mi pregunta es acerca de la filtración de archivos. Tengo el siguiente problema:
Al finalizar un procesos Shell, hay funciones en buscan en automático mensajes de error en los archivos de salida. Y como primer paso se filtran los archivos que no son considerados como “archivos de salida” mediante la siguiente instrucción:

export FUNCIONES_SAL="`ls -1 | grep -v *.Z| grep -v *.gz | grep -v *.sh | grep -v *.sql`"

También con la siguiente instrucción (casi idéntica a la anterior), se obtiene el total de archivos de salida:

numarchsal="`ls -1 | grep -v *.Z | grep -v *.gz | grep -v *.sh | grep -v *.sql | wc -l`"

Observé que estos algoritmos funcionan siempre y cuando solamente exista un archivo del tipo que se pretende filtrar (*.Z, *.gz, *.sh y *.sql).
Solicito ayuda para que ambos algoritmos funcionen cuando se encuentren mas de 1 archivo del tipo que se desea filtrar.
Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Filtrar archivos

Publicado por Tom (253 intervenciones) el 21/03/2014 22:33:52
El problema puede estar (no lo aseguro) en el mal uso de las dobles comillas, ya que lo que te está pasando es que el shell evalúa *.Z (por ejemplo) en la línea de comandos y lo convierte en la lista de ficheros existentes (mira el manual del shell que uses, probablemente en la sección "parameter expansion") antes de pasárselo al grep.

Lo resuelva o no, creo que es bastante mejor escribirlo así:

1
export FUNCIONES_SAL=`ls -1 | grep -v "*.Z"| grep -v "*.gz" | grep -v "*.sh" | grep -v "*.sql"`

Y yo lo habría escrito así (o muy parecido, habría que probar):

1
export FUNCIONES_SAL=`ls -1 | grep -v "\.Z$"| grep -v "\.gz$" | grep -v "\.sh$" | grep -v "\.sql$"`

Y, como no indicas qué shell usas, si sigue fallando todo, prueba a cambiar las comillas dobles por comillas simples (').
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Filtrar archivos

Publicado por LORENA (5 intervenciones) el 21/03/2014 23:53:28
Muchas gracias Tom!
Ejecuté el primer algoritmo y ahora muestra todos los archivos incluyendo los que no debería.
El segundo realiza todo a la perfección, hace el filtro de la forma correcta.
Gracias por tu respuesta me fué muy útil
Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar