выделение столбцов и создание из них нового файла

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

выделение столбцов и создание из них нового файла

Сообщение Dreamer77 »

доброго времени суток!

Есть файл (большой, несколько сотен мб) состоящий из большого количества двухмерных массивов чисел.
перемажаются они двумя строчками текста. Вид следующий

Код: Выделить всё

text text
another text
1 20 30 40 50
2 21 31 41 51
3 22 32 42 52
text text
another text
1 60 70 80 90
2 61 71 81 91
3 62 72 82 92

Необходимо из каждого такого массива скопировать столбец с номером N,
после чего вставить в новый файл столбцами. К примеру используюя массивы выше, получить такое:
Если выбран 3-й столбец:
1 30 70
2 31 71
3 32 72

Файл состоит из пары сотен массивов размером 200 на 200, т.ч. вручную затруднительно.

Заранее премного благодарен и прошу прощения если повтор.
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5456
ОС: Gentoo

Re: выделение столбцов и создание из них нового файла

Сообщение /dev/random »

Если размеры массивов фиксированы, а в 1м столбце везде номера строк, то:
* grep'ом выбираем только строки с числами
* cut'ом выбираем только 1й и N'й столбцы
* split'ом режем на отдельные файлы (по массиву, теперь двухстолбцовому, на файл)
* paste'ом соединяем в одну таблицу
* удаляем временные файлы.
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: выделение столбцов и создание из них нового файла

Сообщение Dreamer77 »

/dev/random
спасибо за оперативный совет. Пошел читать как пользоваться этими функциями!
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: выделение столбцов и создание из них нового файла

Сообщение watashiwa_daredeska »

/dev/random писал(а):
02.04.2012 23:59
* cut'ом выбираем только 1й и N'й столбцы
* split'ом режем на отдельные файлы (по массиву, теперь двухстолбцовому, на файл)
* paste'ом соединяем в одну таблицу
Хм… а почему не сразу вырезаем нужные столбцы cut'ом? Он, в общем-то, умеет и более 2-х столбцов.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5456
ОС: Gentoo

Re: выделение столбцов и создание из них нового файла

Сообщение /dev/random »

watashiwa_daredeska писал(а):
03.04.2012 17:28
Хм… а почему не сразу вырезаем нужные столбцы cut'ом? Он, в общем-то, умеет и более 2-х столбцов.

Потому что по условию эти "более 2-х столбцов" должны быть взяты из разных таблиц. Первый столбец результата - общий первый столбец всех таблиц, остальные - N'й столбец из каждой первоначальной таблицы.
Спасибо сказали: