2012-06-14 8 views
1

У меня есть текстовый файл (вкладка), состоящая из 17 столбцов. Я хотел бы изменить эту структуру таким образом. Сохраняйте столбец от 1 до 6, до конца файла, конечно, и добавьте столбец от 7 до 16 (я могу избавиться от 17) один ниже друг друга и поэтому повторяйте каждый из них от 1 до 5 для каждого столбца, который Я добавил. Это означает, что мне также нужно будет добавить дополнительный столбец с одинаковыми номерами до следующего добавленного старта, чтобы отслеживать добавленный мной столбец и видеть, на какой строке он запускается.shell scripting: resrange columns

Надеюсь, этого достаточно.

Спасибо за ваше драгоценное время и поддержку.

Оригинал

179 1 AA  19.50 30.00 1.0000 2.0000 3.0000 ... 
180 1 BB  19.75 30.00 4.0000 5.0000 6.0000 ... 
230 1 CC  32.25 30.00 7.0000 8.0000 9.0000 ... 

Необходимое

179 1 1 AA  19.50  30.00 1.0000  
180 1 1 BB  19.75  30.00 4.0000  
230 1 1 CC  32.25  30.00 7.0000 
179 1 2 AA  19.50  30.00 2.0000 
180 1 2 BB  19.75  30.00 5.0000  
230 1 2 CC  32.25  30.00 8.0000 
179 1 3 AA  19.50  30.00 3.0000  
180 1 3 BB  19.75  30.00 6.0000  
230 1 3 CC  32.25  30.00 9.0000 
+0

Возможно, вы можете показать пример ввода и вывода? –

ответ

1

Как об этом для идеи (с использованием AWK, чтобы выбрать данные столбцов, используя временные файлы вывода для хранения данных):

resrange.awk:

{ 
    for (i=6; i<=NF; ++i) { 
     print $1, $2, (i-5), $3, $4, $5, $i > "temp_output"i".txt" 
    } 
} 

Тогда это будет использовано в сценарии:

awk -f rearrange.awk < input.txt 
cat temp_output*.txt > output.txt 
rm temp_output*.txt