Edite y reorganice un archivo mediante la línea de comando, importado desde Excel 2003

Edite y reorganice un archivo mediante la línea de comando, importado desde Excel 2003

Tengo un archivo de texto importado de Excel 2003 en el siguiente formato básico.

43038    12500    s.ramesh    labour

43038    13000    m.ramesh    doctor

Tengo que organizar este archivo en un formato tal que la columna 1 debe ser del 1 al 5.

El problema es que las columnas 2, 3 y 4 no están dispuestas en el orden particular.

Quiero este archivo en tal orden que

  • la columna 2 de todo el archivo debe estar en el lugar 15-19
  • la columna 3 debe estar en 49-65
  • la columna 4 debe estar en la posición 75-95

El archivo tiene 100000 filas y 4 columnas por favor.

Estoy buscando consejos sobre si sería útil sort, vi o cualquier otro editor o shell, porque tengo que hacer esto con unos 100 archivos diarios.

Respuesta1

Un lenguaje de programación como Perl es ideal para ello.

$ cat t2
5 2 r.gritty teaboy
43038 12500 s.ramesh labour
43038 13000 m.ramesh doctor

$ perl -ane 'printf("%5s %5s\n", $F[2],$F[1])' t2
r.gritty     2
s.ramesh 12500
m.ramesh 13000

o

$ perl  -ane 'printf("%5s %0.5d\n", $F[2],$F[1])' t2
r.gritty 00002
s.ramesh 12500
m.ramesh 13000

Luego, para editar cientos de archivos en el lugar, todo de una sola vez.

$ perl -i -ane 'printf("%5s %5s\n", $F[2],$F[1])' t1 t2 t3 t4 t5 *.txt foo/t6

información relacionada