Frikada, a ver si alguien sabe...

Iniciado por BeLGaRioN, 29 Septiembre 2012, 21:25 PM

0 Miembros y 1 Visitante están viendo este tema.

BeLGaRioN

Aclaro desde el principio que no puedo hacer un programita que me lo haga, debe ser con comandos linux solamente.

El ejercicio pide esto:

Citar
Sin usar un editor, indica los comandos a seguir para que los dos últimos campos (datos)
de cada línea de tu fichero misdatos, se coloquen al comienzo de esa línea. El resultado debe
almacenarse en el fichero llamado misdatos_1. Es decir, si la línea tiene los siguientes datos.
1025.6 0.00751439 12.2981 -3.95028e-07 0.569316 976.555 -3.11383e+09 2.88912e+12 0.238935
11.5923 14.9557 254.925 -2.52062 cn vit
El resultado que se desea será:
cn vit 1025.6 0.00751439 12.2981 -3.95028e-07 0.569316 976.555 -3.11383e+09 2.88912e+12
0.238935 11.5923 14.9557 254.925 -2.52062

Por si no se ha entendido muy bien, básicamente necesito que las 2 últimas palabras, de cada línea de un fichero de datos, pasen al principio de otro fichero de datos, concatenando la información que precedía a estas dos últimas palabras, en cada línea, después de esas 2 palabras. Sospecho que el comando cut me podría servir al menos para recortar esas 2 palabras. Sé como hacerlo al principio, pero no al final.

¿Alguna idea?
Comunidad hispana dedicada a la Plataforma Steam | http://www.plataformasteam.com

BeLGaRioN

Creo que ya he hecho una parte, al menos la de seleccionar las últimas 2 palabras:

Citargrep "\<[a-z][a-z]*\> \<[a-z][a-z]*\>$"
Comunidad hispana dedicada a la Plataforma Steam | http://www.plataformasteam.com

idst

#2
Código (bash) [Seleccionar]
sed 's/^\(.*\) \(.*\) \(.*\)$/\2 \3 \1/g' misdatos >misdatos_1
Así?

Edit: en todo caso es un comando de GNU, no de Linux.  :silbar: