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