jose maria
2010-02-22 20:07:58 UTC
* Obtengo un listado gigantesco de la forma siguiente
ls -1Q -I undel /media/cluster1/trash > fichero.tx
* Es de un directorio de cuarentena de un cluster, por lo que tiene
caracteres especiales, inodos y datos que he de substituir por una ruta
correcta a los puntos de montaje reales y me estoy haciendo un lio con cut,
sed, tr, etc, al final estoy produciendo 3 ficheros intermedios y al ultimo
le he de aplicar a todas las lineas un comando, se ejecuta con bash y cron,
no doy con la tecla de algo decente, me da igual el lenguaje.
* Las lineas recibidas son de este estilo.
"0000190E|ftp01|CBR101031|eb|copia server enjul|copia server"
"0000851B|ftp01|CBR101265|eb|Copia BBDD Sql server|Copia BBDD Sql
server_20100217_2305.zip.z021.pgp"
"00008551|ftp01|CBR101265|eb|Copia Documentos|Copia
Documentos_20100219_1900.zip.z220.pgp"
"00008554|ftp01|CBR101270|eb|dirs.dat.pgp"
"00008558|ftp01|CBR101270|eb|repair.rep"
"00008596|ftp01|CBR101331|eb|dirs.dat.pgp"
"002CBCFF|ftp03|CBR101321|eb|Datos7 19.02.2010 07.12|log_20091002_2216.txt"
"002CBD00|ftp03|CBR101321|eb|Datos7 19.02.2010 07.12|log_20091003_2204.txt"
"002CBD01|ftp03|CBR101321|eb|Datos7 19.02.2010 07.12|log_20091004_2208.txt"
"002CBD02|ftp03|CBR101321|eb|Datos7 19.02.2010 07.12|log_20091005_2250.txt"
* ignorese el salto de linea, el entrecomillado es una linea completa.
* Y debo de producir un resultado final como este y aplicarle un comando a
cada linea.
"/media/cluster1/ftp01/CBR101031/copia server enjul/copia server"
"/media/cluster1/ftp03/CBR101321/eb/Datos7 19.02.2010
07.12/log_20091005_2250.txt"
* Primero con tr substituyo los | por / , despues con cut busco el primer
separador / , y por ultimo substituyo la cadena anterior al separador por
"/media/cluster1/ y aplico el comando, en fin un lio y todo esto a traves
de cron.
* Nota: Lo habitual es que sean unas 700.000.- lineas, no me importa el
tiempo de ejecucion, si no que no produzca fallos con los espacios y demas.
ls -1Q -I undel /media/cluster1/trash > fichero.tx
* Es de un directorio de cuarentena de un cluster, por lo que tiene
caracteres especiales, inodos y datos que he de substituir por una ruta
correcta a los puntos de montaje reales y me estoy haciendo un lio con cut,
sed, tr, etc, al final estoy produciendo 3 ficheros intermedios y al ultimo
le he de aplicar a todas las lineas un comando, se ejecuta con bash y cron,
no doy con la tecla de algo decente, me da igual el lenguaje.
* Las lineas recibidas son de este estilo.
"0000190E|ftp01|CBR101031|eb|copia server enjul|copia server"
"0000851B|ftp01|CBR101265|eb|Copia BBDD Sql server|Copia BBDD Sql
server_20100217_2305.zip.z021.pgp"
"00008551|ftp01|CBR101265|eb|Copia Documentos|Copia
Documentos_20100219_1900.zip.z220.pgp"
"00008554|ftp01|CBR101270|eb|dirs.dat.pgp"
"00008558|ftp01|CBR101270|eb|repair.rep"
"00008596|ftp01|CBR101331|eb|dirs.dat.pgp"
"002CBCFF|ftp03|CBR101321|eb|Datos7 19.02.2010 07.12|log_20091002_2216.txt"
"002CBD00|ftp03|CBR101321|eb|Datos7 19.02.2010 07.12|log_20091003_2204.txt"
"002CBD01|ftp03|CBR101321|eb|Datos7 19.02.2010 07.12|log_20091004_2208.txt"
"002CBD02|ftp03|CBR101321|eb|Datos7 19.02.2010 07.12|log_20091005_2250.txt"
* ignorese el salto de linea, el entrecomillado es una linea completa.
* Y debo de producir un resultado final como este y aplicarle un comando a
cada linea.
"/media/cluster1/ftp01/CBR101031/copia server enjul/copia server"
"/media/cluster1/ftp03/CBR101321/eb/Datos7 19.02.2010
07.12/log_20091005_2250.txt"
* Primero con tr substituyo los | por / , despues con cut busco el primer
separador / , y por ultimo substituyo la cadena anterior al separador por
"/media/cluster1/ y aplico el comando, en fin un lio y todo esto a traves
de cron.
* Nota: Lo habitual es que sean unas 700.000.- lineas, no me importa el
tiempo de ejecucion, si no que no produzca fallos con los espacios y demas.