Редактировать и переставить файл с помощью командной строки, импортированный из Excel 2003

903
anmol dabang

У меня есть текстовый файл, импортированный из Excel 2003 в следующем основном формате.

43038 12500 s.ramesh labour  43038 13000 m.ramesh doctor 

Я должен расположить этот файл в таком формате, чтобы столбец 1 был от 1 до 5.

Проблема в том, что столбцы 2,3 и 4 расположены не в определенном порядке.

Я хочу этот файл в таком порядке, чтобы

  • колонка 2 всего файла должна быть на 15-19 месте
  • колонка 3 должна быть в 49-65
  • столбец 4 должен быть в 75-95-м положении

Файл имеет 100000 строк и 4 столбца плз.

Я ищу совет относительно того, будет ли полезен sort, vi или любой другой редактор или оболочка, потому что мне приходится делать это примерно для 100 файлов в день.

0

1 ответ на вопрос

0
RedGrittyBrick

Язык сценариев, такой как Perl, идеально подходит для этого.

$ 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 

или же

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

Затем редактировать сотни файлов на месте все за один раз

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

Похожие вопросы