Insertar string antes de cada linea de un archivo
usuario anonimo
opinante.anonimo en gmail.com
Lun Abr 16 16:21:35 CLT 2007
El 16/04/07, Alvaro Herrera <alvherre en alvh.no-ip.org> escribió:
> Yonathan Dossow escribió:
>
> > $ perl -pe "s/^/gzip /;" < lista > lista_out
> >
> > $ cat lista_out
> > gzip lala
> > gzip lala con espacios
> > gzip lala
> > gzip mas lala
>
> Esto no va a funcionar porque gzip va a creer que cuando recibe "lala
> con espacios" son tres argumentos distintos. En cambio esto si
> funciona, y no necesitas perl ni redirecciones estrafalarias:
>
> $ while read line; do touch "$line"; done < lista
> gzip "lala"
> gzip "lala con espacios"
> gzip "lala"
> gzip "mas lala"
>
sort -u lista | while read line; do touch "$line"; done
>
> Esto crea los archivos mencionados (util para propositos de prueba). Y
> esto otro:
>
> $ while read line; do gzip "$line"; done < lista
sort -u lista | while read line; do gzip "$line"; done
>
> los comprime. Da un error eso si:
> gzip: lala: No such file or directory
>
> lo cual es obvio porque hay un nombre repetido, pero eso no es un
> problema porque el resultado final es el mismo.
>
> Finalmente los borro, y tambien el archivo de prueba:
>
> $ (cat lista | sed -e 's/$/.gz/'; echo lista) | while read line; do rm "$line"; done
sort -u lista | while read line; do rm -f "$line.gz"; done
>
> Y nuevamente me tira un error:
> rm: no se puede borrar «lala.gz»: No existe el fichero o el directorio
>
> Lo cual es obvio, porque ya lo borró.
Con sort -u se pueden filtrar los registros repetidos del archivo lista.
>
> --
> Alvaro Herrera http://www.amazon.com/gp/registry/CTMLCN8V17R4
> Al principio era UNIX, y UNIX habló y dijo: "Hello world\n".
> No dijo "Hello New Jersey\n", ni "Hello USA\n".
>
--
_________________________________
Solo soy una mente genial en un cuerpo hermoso: Xubuntu User # 7274
Más información sobre la lista de distribución Linux