Как преобразовать файл с несколькими пробелами в файл с разделителями табуляции?

У меня было file1:

MSTRG.10807.1   0.494311896511595   MID    0.423993026403461 2.39379412548345   1.99703339651136
MSTRG.10884.1   0.365770947942799   EARLY  1.46416917664929   1.16816186543633   0.689075392478972
MSTRG.10958.1   0.52855355823638    MID    0.885493751836316  2.28463841550375   1.26867555157512

Я использовал команду sed 's/ /,/g' file1 > file2, и это произвело file2:

MSTRG.10807.1,,,0.494311896511595,,,MID,,,,0.423993026403461,,2.39379412548345,,,1.99703339651136
MSTRG.10884.1,,,0.365770947942799,,,EARLY,,1.46416917664929,,,1.16816186543633,,,0.689075392478972
MSTRG.10958.1,,,0.52855355823638,,,,MID,,,,0.885493751836316,,2.28463841550375,,,1.26867555157512

Но я хочу файл с разделителями табуляции.

2
задан 10 July 2019 в 10:22

2 ответа

Если Вы хотите символ табуляции, использовать \t как шаблон замены вместо ,.

Если Вы хотите всего, чтобы одна вкладка (или запятая) заменила несколько пробелов, добавить \+ после пространства:

sed 's/ \+/\t/g' file1 > file2
6
ответ дан 2 December 2019 в 01:25

Использовать tr:

tr -s ' ' '\t' < file1 > file2

- s, - сжимать-повторения
замените каждую последовательность повторного символа, который перечислен в последнем указанном НАБОРЕ с отдельным проявлением того символа

9
ответ дан 2 December 2019 в 01:25

Другие вопросы по тегам:

Похожие вопросы: