Для преобразования строки в Таб-разделителями, легкоКак конвертировать несколько строк в фиксированной колонке длиной
cat input.txt | tr "\n" " "
Но у меня есть длинный файл с 84046468 строк. Я хочу преобразовать это в файл с 1910147 строками и 44 столбцами с разделителями табуляции. Первый столбец представляет собой текстовую строку, такую как chrXX_12345_+
, а остальные 43 столбца - это числовые строки. Есть ли способ выполнить это преобразование?
Есть NA
s, поэтому я думаю, sed
и подставляя «\ n» для «\ t», если строка, предшествующая числу, не работает.
образец input.txt
chr10_1000103_+
0.932203
0.956522
1
0.972973
1
0.941176
1
0.923077
1
1
0.909091
0.9
1
0.916667
0.8
1
1
0.941176
0.904762
1
1
1
0.979592
0.93617
0.934783
1
0.941176
1
1
0.928571
NA
1
1
1
0.941176
1
0.875
0.972973
1
1
NA
0.823529
0.51366
chr10_1000104_-
0.952381
1
1
0.973684
образец output.txt
chr10_1000103_+ 0.932203 (numbers all tab-delimited)
chr10_1000104_- etc
(sorry alot of numbers to type manually)
Предоставьте несколько образцов ввода. Вы можете попробовать 'xargs': например,' seq 10 | xargs -n4' присоединятся к блокам по 4 элемента в строке. То же самое происходит с 'seq 10 | паста - - - -. – fedorqui
'xargs' потрясающий! Узнал что-то новое сегодня спасибо! Выход имеет странный разделитель '^ M'. Хорошо, я нашел ответ. [link] (http://unix.stackexchange.com/questions/32001/what-is-m-and-how-do-i-get-rid-of-it) :) – Turtle
Как вы думаете, вы могли бы продемонстрировали вашу проблему, скажем, с четырьмя столбцами вместо 44, поэтому у вас не было бы столько ввода текста, и у нас не было бы столько чтения? «Ответы», опубликованные до сих пор, смехотворно сложны, и я подозреваю, что это потому, что большинство людей не могут потрудиться, чтобы прочитать ваш вопрос. Если вы разместите какой-то разумный ввод проб и фактический ожидаемый результат, я ожидаю, что вы получите правильный ответ, который почти наверняка будет крошечным однострочным awk-скриптом. –