Редактирование текстового файла с одним столбцом в несколько столбцов

У меня есть большой набор текстовых файлов, которые в настоящее время находятся в отдельных столбцах, каждая строка представляет момент времени для сеанса fMRI.

Теперь я хочу разделить этот единственный столбец на несколько столбцов, чтобы я мог сделать временной ряд сигнала.

Так, например: в одном текстовом файле 351 строка (временные точки). Мой эксперимент состоял из 8 блоков по 40 томов с дополнительным 31 томом периода отдыха (т.е. 8*40+31=351). Теперь я хочу преобразовать этот текстовый файл в следующий формат:

8(w)x40(h)+1x31...

i.e.,

a
b
c
d
e
f

to

a d
b e
c f

Заранее спасибо за вашу помощь!!


person Peter Yoo    schedule 10.02.2016    source источник
comment
как мне понять ваш пример abcdef с правилом 8(w)x40(h)+1x31... ? что такое w и h?   -  person Kent    schedule 10.02.2016
comment
@Kent Дикое предположение о ширине и высоте.   -  person 123    schedule 10.02.2016
comment
@123 и Кенту за помощь! 123, к сожалению, ваше предложение дает мне a b c d e f, тогда как я требую... a d b e c f каких-либо решений??   -  person Peter Yoo    schedule 11.02.2016


Ответы (1)


для вашего примера это работает:

split -l 3 file0 # split file into chunks of 3 lines
nl xaa > file1 # add linecount for join
nl xab > file2
join file1 file2 > pre # join based on linecount colum
sed 's/ *[0-9]*.//' pre > result # remove linecount colum

Но решение, предложенное комментарием 123 (файл xargs -n3 ‹), намного проще и приводит только к транспонированной таблице!

person qRayner    schedule 10.02.2016