Извлечь несколько столбцов и добавить нулевой символ между - PullRequest
1 голос
/ 04 апреля 2019

У меня есть файл в следующем формате:

TRINITY_DN119001_c0_g1_i1   4   *   0   0   *   *   0   0   GAGCCTCCCTCATGAATGTACCAGCATTTACCTCATAAAGAGCT    *   XO:Z:NM 
TRINITY_DN119037_c0_g1_i1   4   *   0   0   *   *   0   0   TAAGATTAGGTTGTATTCCAG   *   XO:Z:NM 
TRINITY_DN119099_c0_g1_i1   4   *   0   0   *   *   0   0   AGGCAGGCGCTAAACGATTTGCATTTCTCTAATGATTACGCCAG    *   XO:Z:NM

Я пытаюсь извлечь 1-й и 10-й столбец и сохранить его в следующем формате (выходной файл):

>TRINITY_DN119099_c0_g1_i1  
GAGCCTCCCTCATGAATGTACCAGCATTTACCTCATAAAGAGCT    
>TRINITY_DN119037_c0_g1_i1
TAAGATTAGGTTGTATTCCAG
>TRINITY_DN119001_c0_g1_i1  
AGGCAGGCGCTAAACGATTTGCATTTCTCTAATGATTACGCCAG

Сейчас я делаю следующий код:

cut -d "  " -f1,10 in.txt > out.txt
sed 's/^/>/' out.txt

, но не могу понять, как получить результат выше.

Ответы [ 2 ]

2 голосов
/ 04 апреля 2019

Вы можете использовать awk:

awk '{printf ">%s\n%s\n", $1, $10}' file

>TRINITY_DN119001_c0_g1_i1
GAGCCTCCCTCATGAATGTACCAGCATTTACCTCATAAAGAGCT
>TRINITY_DN119037_c0_g1_i1
TAAGATTAGGTTGTATTCCAG
>TRINITY_DN119099_c0_g1_i1
AGGCAGGCGCTAAACGATTTGCATTTCTCTAATGATTACGCCAG

Однако имейте в виду, что в показанном выводе это 1-й и 10-й столбец вместо 9-го.

0 голосов
/ 18 апреля 2019

если ваши данные в файле 'd', попробуйте gnu sed:

 sed -E 's/^(TRINITY_DN\S+).*\s([ACGT]+).*/\1\n\2/' d
...