La forma más fácil de reorganizar columnas y manipular files de text

Aprendiendo linux en la escuela y trabajando en la manipulación de files de text en este momento. Buscando aprender algunos atajos aquí y allá en el path. Actualmente tengo un file de text con contenido como:

First Last 111 E. Road New York NY First2 Last2 222 w. Road Newark NJ 

Se supone que debemos escribir una secuencia de commands para reorganizar las columnas y delimitar las comas en lugar de delimitar las tabs. Lo que hice fue simplemente cortar cada campo y ponerlo en su propio file tmp y luego pegarlo como tal:

 paste tmplast tmpfirst tmpstate tmpaddress | tr '\t' ',' > finished 

¿Hay una manera más rápida en lugar de cortar todo en un file tmp y pegar juntos? Soy muy nuevo en Linux y los únicos commands que aprendí para manipular files son como tr y sed .

Puedes hacerlo en awk así:

 awk 'BEGIN {FS="\t"; OFS=","} {print $2, $1, $5, $3, $4}' file 

FS y OFS especifican el "separador de campo (de input)" y el "separador de campo de salida", y luego se puede especificar explícitamente el order en que se imprimirán los campos mediante la notación $ . (No se necesitan files temporales)

Salida:

 Last,First,NY,111 E. Road,New York Last2,First2,NJ,222 w. Road,Newark