Unix - busqueda de ficheros en Unix

 
Vista:

busqueda de ficheros en Unix

Publicado por Roberto (3 intervenciones) el 18/08/2008 15:02:49
Buenos días:

Necesito recorrer un directorio y buscar ficheros acabados en .txt. Tengo que hace un split de los encontrados y si ha ido bien moverlos a otra carpeta. Lo que he hecho me falla:
Con un fichero sólo funciona corectamente, pero con dos me da fallo. Alguien me podría decir como hacerlo por favor?

for i in `find $DIRECTORIO_LOCAL_EMP -type f`
do
if [ `find *.txt` ]; then
split -l 25000 $i $i-
if [ `find *.txt-aa` ]; then
rm $i
else
mv $i $DIRECTORIO_ERROR_INPUT
echo "El formato del fichero de entrada es incorrecto y ha sido enviado al directorio /opt/stratus/Batch/Error"
fi
else
mv $i $DIRECTORIO_ERROR_INPUT
echo "El formato del fichero de entrada es incorrecto y ha sido enviado al directorio /opt/stratus/Batch/Error"
fi
done
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

RE:busqueda de ficheros en Unix

Publicado por Antoni Masana (21 intervenciones) el 19/08/2008 13:34:35
Pregunto: ¿Porque pones un *.txt si estas recorriendo un directorio y tratando fichero a fichero?

for i in `find $DIRECTORIO_LOCAL_EMP -type f | grep ".txt$ ` <--- El grep filtra los
ficheros que
termina en .txt
do
if [ `find $i` ]; then <---- ERROR / Corregido y $i es igual que ${i}
split -l 25000 ${i} ${i}- pero $ia no es lo mismo que ${i}a
if [ `find ${i}-aa` ]; then <--- No utilizar el find esto es mejor -f ${i}-aa
rm $i
else
mv $i $DIRECTORIO_ERROR_INPUT
echo "El formato del fichero de entrada es incorrecto y ha sido enviado al directorio /opt/stratus/Batch/Error"
fi
else
mv $i $DIRECTORIO_ERROR_INPUT
echo "El formato del fichero de entrada es incorrecto y ha sido enviado al directorio /opt/stratus/Batch/Error"
fi
done

Ademas seria mas simple asi

for i in `find $DIRECTORIO_LOCAL_EMP -type f | grep ".txt$ `
do
split -l 25000 ${i} ${i}-
if [ -f find ${i}-aa ]; then
rm ${i}
else
mv ${i} $DIRECTORIO_ERROR_INPUT
echo "El formato del fichero de entrada es incorrecto y ha sido enviado al directorio $DIRECTORIO_ERROR_INPUT"
fi
done
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

RE:busqueda de ficheros en Unix

Publicado por Robert (3 intervenciones) el 20/08/2008 14:29:24
-bash: command substitution: line 2:nexpected EOF while looking for matching `''
-bash: command substitution: line 3: syntax error: unexpected end of file

Gracias, pero me da este fallo con el for.
Puedes decirme de qué se trata.

Muchas gracias
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

RE:busqueda de ficheros en Unix

Publicado por roberto (1 intervención) el 20/08/2008 14:37:31
perdona quería decir este fallo:

syntax error near unexpected token `
`done

Un saludo y gracias
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

RE:busqueda de ficheros en Unix

Publicado por Antoni Masana (21 intervenciones) el 21/08/2008 07:38:23
Perdon, me comi unas comillas en la primera linea despues del txt$

for i in `find $DIRECTORIO_LOCAL_EMP -type f | grep ".txt$" `
do
split -l 25000 ${i} ${i}-
if [ -f find ${i}-aa ]; then
rm ${i}
else
mv ${i} $DIRECTORIO_ERROR_INPUT
echo "El formato del fichero de entrada es incorrecto y ha sido enviado al directorio $DIRECTORIO_ERROR_INPUT"
fi
done

Espero que asi ya funcione.

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

RE:busqueda de ficheros en Unix

Publicado por Robert (3 intervenciones) el 21/08/2008 11:05:48
Buenas otra vez pero es que de Unix sé muy poco y me han mandado esto que seguro que es muy simple pero no ma sale.

He encontrado el fallo y lo he dejado así para ver que falla:

for i in `find $DIRECTORIO_LOCAL_EMP -type f | grep ".txt$" `
do
echo "Hola"
done

pero me da este fallo y probado cambiando cosas pero nada:

'/principal.sh: line 3: syntax error near unexpected token `do
'/principal.sh: line 3: `do

gracias y muchas gracias
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

RE:busqueda de ficheros en Unix

Publicado por Antoni Masana (21 intervenciones) el 21/08/2008 13:05:30
Palabrita que esto funciona:

DIRECTORIO_LOCAL_EMP=/

for i in `find $DIRECTORIO_LOCAL_EMP -type f | grep ".txt$" `
do
echo "Fichero: $i"
done

Esto es un extracto del resultado:

Fichero: /usr/ma/backup/ett/lam_data/est-200807.txt
Fichero: /usr/ma/backup/ett/cpu_itorab/sem_02.txt
Fichero: /usr/ma/backup/ett/cpu_itorab/sem_01.txt
Fichero: /usr/ma/backup/ett/cpu_itorab/sem_03.txt
Fichero: /usr/ma/backup/ett/cpu_itorab/sem_04.txt
Fichero: /usr/ma/backup/ett/cpu_itorab/sem_05.txt
Fichero: /usr/ma/backup/ett/cpu_itorab/sem_06.txt
Fichero: /usr/ma/backup/ett/cpu_itorab/sem_07.txt
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

RE:busqueda de ficheros en Unix

Publicado por SuperIndio (8 intervenciones) el 10/09/2008 20:25:41
Noooooooooooooo!!!!!!!! Noooooooooooooo!!!!!!!! Noooooooooooooo!!!!!!!!

Man !!!

Es asi de facil ---> te paras en directorio desde donde queres empezar a buscar, ej

De los directorios

/afa/clubes/torneo/a/
/afa/clubes/torneo/bm/
/afa/clubes/torneo/bn/
/afa/clubes/torneo/c/
/afa/clubes/torneo/d/
/afa/clubes/torneo/arga/
/afa/clubes/torneo/argb/

de estos directorios me paro en

/afa/clubes/torneo>

y ahi le mando:

/afa/clubes/torneo>find . -name "*.Txt" -print

y listo

find . -name "*.txt" -print

y Listo
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

RE:busqueda de ficheros en Unix

Publicado por Hector Alejandro Cruz (4 intervenciones) el 11/09/2008 16:34:10
Y cual es la diferencia entre poner o no el comando -print ? por que yo lo ago sin el -print
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

RE:busqueda de ficheros en Unix

Publicado por SuperIndio (8 intervenciones) el 11/09/2008 19:15:08
No que Unix tenes pero el find en algunos UNIX
Bueno en algunos UNIX si no lo pones el -print
no te muestra todo el pathe donde lo encontro.

Si en el tuyo no hace falta sacalo y listo
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