замените новую строку вкладкой в определенном местоположении

У меня есть файл как это.

M00425_ght_cgd2_2212_B_0_2 (newline)
ATGCCGTTAGAGCTAG
M00425_ght_cgd2_2213_B_0_3_1 (newline)
GTACATTGACATAGAGTACATAGCGA

Я хочу файл как это:

M00425_ght_cgd2_2212_B_0_2(tab)ATGCCGTTAGAGCTAG
M00425_ght_cgd2_2213_B_0_3_1(tab)GTACATTGACATAGAGTACATAGCGA

Кто-либо может помочь?

0
задан 27 October 2014 в 10:54

2 ответа

Простой sed команда:

sed '$!N;s/\n/\t/' inputfile.txt > outputfile.txt

, Что означает, присоединяются к каждой паре строк с Разграничителем табуляции.

Эта команда присоединяется к двум последовательным строкам с эти N команда. К ним присоединяются с \n символ между ними. Команда замены заменяет эту новую строку вкладкой, таким образом присоединяясь к каждой паре строк с Разграничителем табуляции.

Также, который похож на этот sed '/$/N;s/\n/\t/' inputfile.txt команда.

, ЕСЛИ Ваш файл содержит пустые строки, можно сначала удалить все это строки при помощи ниже sed команда:

sed -i '/^$/d' inputfile.txt
2
ответ дан 6 October 2019 в 22:09

Это подобно ответу Jacob, но достаточно отличается, что я думал, что он гарантировал упоминание. Вместо того, чтобы искать присутствие строки, Вы могли проверить, содержала ли строка символы кроме "GACT".

#!/usr/bin/env python

with open('input.txt','r') as f:
    lines = f.readlines()
for i in range(0,len(lines)):
    if len(lines[i].strip('GACT\n'))>0:
        lines[i] = lines[i].replace('\n','\t')
with open('output.txt','w') as f:
    f.writelines(lines)

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

#!/usr/bin/env python

with open('input.txt','r') as f:
    lines = f.readlines()
for i in range(0,len(lines)):
    if i/2==i/2.0:
        lines[i] = lines[i].replace('\n','\t')
with open('output.txt','w') as f:
    f.writelines(lines)

Вы могли сохранить их, поскольку, например, lines2tabs.py тогда перешли к каталогу в терминале с помощью cd и выполняют его с помощью python lines2tabs.py. Обратите внимание, что необходимо будет измениться input.txt на название файла.

0
ответ дан 6 October 2019 в 22:09

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

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