2015-03-09 3 views
2

У меня есть текстовый файл следующим образом:Ряды в Колонном

TOPIC: 0 161416.0 

the 10758.0 
. 6330.0 
, 5043.0 
<unknown> 4591.0 
in 4521.0 
be 4476.0 
of 3759.0 

TOPIC: 1 93549.0 

the 6957.0 
, 4170.0 
of 3624.0 
. 3468.0 
<unknown> 2321.0 
be 2121.0 
a 2073.0 
in 1998.0 

и так далее. У меня около 2000 тем в файле.

Я уже опробовал

awk -v RS= '/----/{next}{gsub(/\n/,",")}7' Input File 

Но, я получаю выход как

TOPIC: 0 161416.0 

the 10758.0,. 6330.0,, 5043.0,<unknown> 4591.0,in 4521.0,be 4476.0,of  3759.0 

TOPIC: 1 93549.0 

the 6957.0,, 4170.0,of 3624.0,. 3468.0,<unknown> 2321.0,be 2121.0,a 2073.0,in 1998.0 

Но мне нужен выход, чтобы быть

Я хочу иметь свой выход следующим образом:

TOPIC: 0 161416 TOPIC: 1 93549.0 ........... TOPIC: N 

. 6330.0   , 4170.0      . 
.     of 3624.0      . 
.     .        . 
.     .        . 
.     . 

s o on ....

Здесь они слова/темы и их соответствующие веса/значения.

PS: В каждой теме по существу нет одинакового количества элементов. Тема 0 может иметь 100 элементов, в разделе 1 может иметь 300 элементов и так далее

раствора

ответ

1

Perl:

perl -lne 'chomp; 
      if (/Topic: .*/) { push @t, [$_] } 
      else { push @{ $t[-1] }, $_ } 
      $max = @{ $t[-1] } if @{ $t[-1] } > $max; 
      }{ 
      for $i (0 .. $max-1) { 
       print join "\t", map $t[$_][$i], 0 .. $#t 
      }' <input> output 
+0

модификация, не creatable значения массива попытки, индекс -1 при -e линии 3, строка <> 1. По-прежнему получаю эту ошибку :( – Rudhra

+0

@Krupa_Raghu: Тогда, пожалуйста, укажите образец ввода, который также вызывает ошибку. – choroba

+0

Разве это не просто «Тема» или «ТЕМА»? – choroba

Смежные вопросы