[opensuse-es] en busca de un comando
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkqxUgYACgkQDoK71SWnshXpEgCeJjJmFFuDDUTwdu5Ho7MdtFpd sekAn2lhCVjHIklWKgtRJ4MXUpYazm9d =6PAM -----END PGP SIGNATURE----- -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
On Wednesday 16 September 2009 23:00:54 Nacho wrote:
Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias
Podrías empezar por aquí: http://www.freeos.com/guides/lsst/ -- Saludos Lluis
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Lluis escribió:
On Wednesday 16 September 2009 23:00:54 Nacho wrote:
Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias
Podrías empezar por aquí:
Gracias pero mi ingles es nefasto, y ademas por donde empezar? -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkqxWDMACgkQDoK71SWnshVaAACdExd8+Btz8vdA32t0Ju2uxlPk uDYAnicoOX3mtYvw3loxWifixBeAWULn =8eNh -----END PGP SIGNATURE----- -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Nacho wrote:
Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias A ver...capaz algo asi (untested)
PUNTO_DE_PARTIDA=/home/files/ CADENA_A_BUSCAR="texto_loco" DIR_DONDE_COPIAR=/tmp/destino/ cd $PUNTO_DE_PARTIDA for archivo in `find -type f -name "*.f"` do grep $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done Podria ser lo que buscas. Saludos. Gerardo -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Gerardo Herzig escribió:
Nacho wrote:
Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias A ver...capaz algo asi (untested)
PUNTO_DE_PARTIDA=/home/files/ CADENA_A_BUSCAR="texto_loco" DIR_DONDE_COPIAR=/tmp/destino/
cd $PUNTO_DE_PARTIDA for archivo in `find -type f -name "*.f"` do grep $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done
Podria ser lo que buscas.
Saludos. Gerardo
No se, no entiendo mucho mas bien poco, mañana lo pruebo, con las neuronas frescas y te cuento Muchas Gracias. /Nacho -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkqxWogACgkQDoK71SWnshX/OgCfeK8umptbLTyQdmRbe7Kqs0gW PkkAn0yLUlTVxhL5H6zQyMU/9e5Zava2 =ATva -----END PGP SIGNATURE----- -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Gerardo Herzig escribió:
Nacho wrote:
Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias A ver...capaz algo asi (untested)
PUNTO_DE_PARTIDA=/home/files/ CADENA_A_BUSCAR="texto_loco" DIR_DONDE_COPIAR=/tmp/destino/
cd $PUNTO_DE_PARTIDA for archivo in `find -type f -name "*.f"` do grep $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done
Podria ser lo que buscas.
Saludos. Gerardo
Perdoname, pero de esto no entiendo mucho, me sugieres que cree un script o algo parecido?? Entiendo que esas son las instrucciones que deben constar?? gracias. /Nacho -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkqynWcACgkQDoK71SWnshURaACgot3PsrUSnWj8JArABxC7z0i4 Cy8AnjS5WhOuCuCcoWcGUDgYLcPKioOF =si4V -----END PGP SIGNATURE----- -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
On Thursday 17 September 2009 22:34:47 Nacho wrote:
Gerardo Herzig escribió:
Nacho wrote:
Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias
A ver...capaz algo asi (untested)
PUNTO_DE_PARTIDA=/home/files/ CADENA_A_BUSCAR="texto_loco" DIR_DONDE_COPIAR=/tmp/destino/
cd $PUNTO_DE_PARTIDA for archivo in `find -type f -name "*.f"` do grep $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done
Podria ser lo que buscas.
Saludos. Gerardo
Perdoname, pero de esto no entiendo mucho, me sugieres que cree un script o algo parecido?? Entiendo que esas son las instrucciones que deben constar?? gracias. /Nacho
Si, claro que te lo sugiere, no hay ningún sistema maravilloso que tenga previsto todo lo que queremos hacer. Para lo que quieres, debes hacer un script o algo parecido. -- Saludos Lluis
Gerardo Herzig escribió:
Nacho wrote:
Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias A ver...capaz algo asi (untested)
PUNTO_DE_PARTIDA=/home/files/ CADENA_A_BUSCAR="texto_loco" DIR_DONDE_COPIAR=/tmp/destino/
cd $PUNTO_DE_PARTIDA for archivo in `find -type f -name "*.f"` do grep $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done
Podria ser lo que buscas.
Saludos. Gerardo
Perdoname, pero de esto no entiendo mucho, me sugieres que cree un script o algo parecido?? Entiendo que esas son las instrucciones que deben constar?? gracias. /Nacho Si, si, esto deberia formar parte de un archivo (script). Lo que hay al
Nacho wrote: principio son algunas variables (PUNTO_DE_PARTIDA, DIR_DONDE_COPIAR, CADENA_A_BUSCAR) que tendrias que adaptar en tu script para que funcione segun los directorios donde tengas los archivos en cuestion. ***** Probalo en algun directorio de pruebas, donde puedas verificar facilmente el resultado, antes de aplicarlo a gran escala, pues lo no he probado **** Saludos. Gerardo -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El 17/09/09, Nacho escribió:
Gerardo Herzig escribió:
Nacho wrote:
Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias A ver...capaz algo asi (untested)
PUNTO_DE_PARTIDA=/home/files/ CADENA_A_BUSCAR="texto_loco" DIR_DONDE_COPIAR=/tmp/destino/
cd $PUNTO_DE_PARTIDA for archivo in `find -type f -name "*.f"` do grep $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done
Podria ser lo que buscas.
Perdoname, pero de esto no entiendo mucho, me sugieres que cree un script o algo parecido?? Entiendo que esas son las instrucciones que deben constar??
Sí, la idea es que generes un script que puedas ejecutar. Copia y pega en kwrite el código que te ha puesto Gerardo (no te olvides de poner en la parte superior "#/bin/bash", sin las comillas). Lo guardas como "script.sh" y le das permisos de ejecución a ese archivo. Le asignas valores a las variables (utiliza directorios y archivos de prueba antes de trabajar sobre los reales) y vas haciendo tus pruebas :-) Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Gerardo Herzig escribió:
Nacho wrote:
Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias A ver...capaz algo asi (untested)
PUNTO_DE_PARTIDA=/home/files/ CADENA_A_BUSCAR="texto_loco" DIR_DONDE_COPIAR=/tmp/destino/
cd $PUNTO_DE_PARTIDA for archivo in `find -type f -name "*.f"` do grep $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done
Podria ser lo que buscas.
Saludos. Gerardo
Si esto es, solo que el punto de partida son muchos directorios dentro de otro, como podemos hacer esto de forma recursiva, son 95 directorios denominados recup_dir.1 y asi sucesivamente hasta el recup_dir.95 Gracias /Nacho -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkqz/gAACgkQDoK71SWnshULAgCfcpH/6yRf8jYuAqs7AQmWiQyT O/0AoLCyMxB7Hb3kIwrD6+D/p6zqnoGd =1Lyy -----END PGP SIGNATURE----- -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Nacho wrote:
Gerardo Herzig escribió:
Nacho wrote:
Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias A ver...capaz algo asi (untested)
PUNTO_DE_PARTIDA=/home/files/ CADENA_A_BUSCAR="texto_loco" DIR_DONDE_COPIAR=/tmp/destino/
cd $PUNTO_DE_PARTIDA for archivo in `find -type f -name "*.f"` do grep $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done
Podria ser lo que buscas.
Saludos. Gerardo
Si esto es, solo que el punto de partida son muchos directorios dentro de otro, como podemos hacer esto de forma recursiva, son 95 directorios denominados recup_dir.1 y asi sucesivamente hasta el recup_dir.95 Gracias /Nacho Entonces haz que el punto de partida sea el directorio que contiene a todos esos! Si recup_dir.1..recup_dir.95 estan dentro de, digamos recup_dir, entonces recup_dir seria el 'punto de partida'
Saludos. Gerardo -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Gerardo Herzig escribió:
Nacho wrote:
Gerardo Herzig escribió:
Nacho wrote:
Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias A ver...capaz algo asi (untested) PUNTO_DE_PARTIDA=/home/files/ CADENA_A_BUSCAR="texto_loco" DIR_DONDE_COPIAR=/tmp/destino/ cd $PUNTO_DE_PARTIDA for archivo in `find -type f -name "*.f"` do grep $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done
Podria ser lo que buscas. Saludos. Gerardo Si esto es, solo que el punto de partida son muchos directorios dentro de otro, como podemos hacer esto de forma recursiva, son 95 directorios denominados recup_dir.1 y asi sucesivamente hasta el recup_dir.95 Gracias /Nacho Entonces haz que el punto de partida sea el directorio que contiene a todos esos! Si recup_dir.1..recup_dir.95 estan dentro de, digamos recup_dir, entonces recup_dir seria el 'punto de partida'
Saludos. Gerardo
Vamos por partes, el archivo script utilizado es el siguiente: #! /bin/bash -x echo "alla vamos !" # definicion de variables PUNTO_DE_PARTIDA=/seguridad CADENA_A_BUSCAR="ernesto" DIR_DONDE_COPIAR=/seguridad/mas # empieza el programa # situandonos en el directorio a escanear cd $PUNTO_DE_PARTIDA # ahora hacemos un bucle buscando los ficheros que acaban en .f # y los copiamos al dir. ernesto y añadimos la ext .msf for archivo in `find . -type f -name "*.f"` do grep -li $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done Bueno pues la busqueda si que la hace de manera recursiva, es decir busca en todos los directorios desde /seguridad en adelante, y encuentra los archivos, pero a la hora de cambiarles el nombre y copiarlos a otro directorio falla, las rutas las he comprobado y son correctas, ademas si lo haces directorio por directorio funciona, alguna idea?? Gracias /Nacho -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkq2nsoACgkQDoK71SWnshXxlQCghd6569i77N0fFn1jNu+7qAIl w5gAniIlldhx2DqpYGRRRY+0zfwgidT2 =RQCG -----END PGP SIGNATURE----- -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El 2009-09-20 a las 23:29 +0200, Nacho escribió:
Gerardo Herzig escribió:
Entonces haz que el punto de partida sea el directorio que contiene a todos esos! Si recup_dir.1..recup_dir.95 estan dentro de, digamos recup_dir, entonces recup_dir seria el 'punto de partida'
Vamos por partes, el archivo script utilizado es el siguiente:
#! /bin/bash -x echo "alla vamos !"
# definicion de variables PUNTO_DE_PARTIDA=/seguridad CADENA_A_BUSCAR="ernesto" DIR_DONDE_COPIAR=/seguridad/mas
# empieza el programa # situandonos en el directorio a escanear cd $PUNTO_DE_PARTIDA
# ahora hacemos un bucle buscando los ficheros que acaban en .f # y los copiamos al dir. ernesto y añadimos la ext .msf
for archivo in `find . -type f -name "*.f"` do grep -li $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done
Bueno pues la busqueda si que la hace de manera recursiva, es decir busca en todos los directorios desde /seguridad en adelante, y encuentra los archivos, pero a la hora de cambiarles el nombre y copiarlos a otro directorio falla, las rutas las he comprobado y son correctas, ademas si lo haces directorio por directorio funciona, alguna idea??
Hum... prueba reemplazando esta línea: *** grep -li $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf *** Por esa otra: *** grep -li $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/${archivo##*/}.msf *** De esta forma toma el nombre del archivo en lugar de la ruta completa. Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Nacho wrote:
Gerardo Herzig escribió:
Nacho wrote:
Gerardo Herzig escribió:
Nacho wrote:
Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias A ver...capaz algo asi (untested) PUNTO_DE_PARTIDA=/home/files/ CADENA_A_BUSCAR="texto_loco" DIR_DONDE_COPIAR=/tmp/destino/ cd $PUNTO_DE_PARTIDA for archivo in `find -type f -name "*.f"` do grep $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done Podria ser lo que buscas. Saludos. Gerardo Si esto es, solo que el punto de partida son muchos directorios dentro de otro, como podemos hacer esto de forma recursiva, son 95 directorios denominados recup_dir.1 y asi sucesivamente hasta el recup_dir.95 Gracias /Nacho Entonces haz que el punto de partida sea el directorio que contiene a todos esos! Si recup_dir.1..recup_dir.95 estan dentro de, digamos recup_dir, entonces recup_dir seria el 'punto de partida'
Saludos. Gerardo
Vamos por partes, el archivo script utilizado es el siguiente:
#! /bin/bash -x echo "alla vamos !"
# definicion de variables PUNTO_DE_PARTIDA=/seguridad CADENA_A_BUSCAR="ernesto" DIR_DONDE_COPIAR=/seguridad/mas
# empieza el programa # situandonos en el directorio a escanear cd $PUNTO_DE_PARTIDA
# ahora hacemos un bucle buscando los ficheros que acaban en .f # y los copiamos al dir. ernesto y añadimos la ext .msf
for archivo in `find . -type f -name "*.f"` do grep -li $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done
Bueno pues la busqueda si que la hace de manera recursiva, es decir busca en todos los directorios desde /seguridad en adelante, y encuentra los archivos, pero a la hora de cambiarles el nombre y copiarlos a otro directorio falla, las rutas las he comprobado y son correctas, ademas si lo haces directorio por directorio funciona, alguna idea?? Gracias /Nacho Seria de ayuda saber que dice *exactamente* la salida del comando. Viendo un poquito el programa, tal vez sea necesario sacar el path del archivo que estas copiando, tal vez este tirando errores de directorios inexistentes.
Proba modificar la linea "algida" por algo asi grep -li $CADENA_A_BUSCAR $archivo && cp $archivo$DIR_DONDE_COPIAR/`basename $archivo`.msf Que hace basename? Pues comechingon:~ # basename /home/pepe/lalala.txt lalala.txt Tal vez venga por ahi la cosa, sino copia y pega el mensaje de error. Gerardo -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Gerardo Herzig escribió:
Nacho wrote:
Gerardo Herzig escribió:
Nacho wrote:
Gerardo Herzig escribió:
Nacho wrote:
Hola a todos, necesito un comando que busque recursivamente en un directorio todos los archivos que tengan la extendion .f y que de ellos selecciones los que contengan una cadena de texto y estos los copie a otro directorio y los renombre con la extensión .msf Muchas gracias A ver...capaz algo asi (untested) PUNTO_DE_PARTIDA=/home/files/ CADENA_A_BUSCAR="texto_loco" DIR_DONDE_COPIAR=/tmp/destino/ cd $PUNTO_DE_PARTIDA for archivo in `find -type f -name "*.f"` do grep $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done Podria ser lo que buscas. Saludos. Gerardo Si esto es, solo que el punto de partida son muchos directorios dentro de otro, como podemos hacer esto de forma recursiva, son 95 directorios denominados recup_dir.1 y asi sucesivamente hasta el recup_dir.95 Gracias /Nacho Entonces haz que el punto de partida sea el directorio que contiene a todos esos! Si recup_dir.1..recup_dir.95 estan dentro de, digamos recup_dir, entonces recup_dir seria el 'punto de partida' Saludos. Gerardo
Vamos por partes, el archivo script utilizado es el siguiente:
#! /bin/bash -x echo "alla vamos !"
# definicion de variables PUNTO_DE_PARTIDA=/seguridad CADENA_A_BUSCAR="ernesto" DIR_DONDE_COPIAR=/seguridad/mas
# empieza el programa # situandonos en el directorio a escanear cd $PUNTO_DE_PARTIDA
# ahora hacemos un bucle buscando los ficheros que acaban en .f # y los copiamos al dir. ernesto y añadimos la ext .msf
for archivo in `find . -type f -name "*.f"` do grep -li $CADENA_A_BUSCAR $archivo && cp $archivo $DIR_DONDE_COPIAR/$archivo.msf done
Bueno pues la busqueda si que la hace de manera recursiva, es decir busca en todos los directorios desde /seguridad en adelante, y encuentra los archivos, pero a la hora de cambiarles el nombre y copiarlos a otro directorio falla, las rutas las he comprobado y son correctas, ademas si lo haces directorio por directorio funciona, alguna idea?? Gracias /Nacho Seria de ayuda saber que dice *exactamente* la salida del comando. Viendo un poquito el programa, tal vez sea necesario sacar el path del archivo que estas copiando, tal vez este tirando errores de directorios inexistentes.
Proba modificar la linea "algida" por algo asi grep -li $CADENA_A_BUSCAR $archivo && cp $archivo$DIR_DONDE_COPIAR/`basename $archivo`.msf
Que hace basename? Pues
comechingon:~ # basename /home/pepe/lalala.txt lalala.txt
Tal vez venga por ahi la cosa, sino copia y pega el mensaje de error.
Gerardo
Gracias, solucionado, al final el script ha quedado asi: #! /bin/sh echo "" echo "Alla vamos !" # definicion de variables PUNTO_DE_PARTIDA=/home/gloriyedu/pruebas CADENA_A_BUSCAR="ernesto" DIR_DONDE_COPIAR=/home/gloriyedu/pruebas/ernesto # empieza el program # situadonos en el directorio a escanear cd $PUNTO_DE_PARTIDA echo "" echo "estamos en" $PUNTO_DE_PARTIDA # creamos el fichero ficheros_encontrados touch ficheros_encontrados # y ahora hacemos la busqueda de los ficheros *.f find . -type f -name "*."f > ficheros_encontrados echo "" echo "------------------" wc -l ficheros_encontrados echo "" cat ficheros_encontrados echo "------------------" echo "" echo "los ficheros conteniendo la cadena" $CADENA_A_BUSCAR for archivo in ` cat ficheros_encontrados ` do grep -li $CADENA_A_BUSCAR $archivo && cp -f $archivo $DIR_DONDE_COPIAR
/dev/null done
echo "" echo "ahora solo queda renombrar" rename .f .msf ernesto/*.f -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkq71tEACgkQDoK71SWnshWaGwCfQsWqdN+gZietbX6Algiv40m3 9XkAn2BtVn/ovhqp89Ej1KV5ufohiDn/ =9YaV -----END PGP SIGNATURE----- -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
participants (4)
-
Camaleón
-
Gerardo Herzig
-
Lluis
-
Nacho