Заголовок издания с awk - PullRequest
       1

Заголовок издания с awk

2 голосов
/ 30 марта 2020

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

@SRR5874687.1.171.2 length=100 1 /1
CACCGAACTGAAGACATGCGTCATCACCGAAGATTTCAACTAAAGCTGGCATGTGCCATACGTGAATACCACCTGAAGCAACTGGCATAACACCTGGCAT
+
@@@DFFDDHBFHDHGBFG@@C<@F>??CFHIH0??FFIGII<BBC@FCFCHGH.7777=D;AHEFB@?7;;>BEC;@CCCC??ACBCCCCCCC?CC@?CC
@SRR5874687.1.172.2 length=100 2 /1
CTGGACAACGCGCCGCAATATTGCAGCTTATTAGTTTGGTGATGAGAGGACTCGCGCAACCGGCACACGCGGTTTCAGCACGTGCACAACATGTACAGAC
+
?@@FBDDDFHDHHJJJIGHIIJJGGHIGI?FH<DFHJJJCF@GHFHGHIGHHEEEDDDDDDDDDDDDDD@BBBBDDEDDDDDBDDDDDDDDDDDEEEECB
@SRR5874687.1.173.2 length=100 3 /1
GTTAAAGTAGTATTGGTATTAAATTTTGTACGACGTGGGAAAATTAAACCATCTTTTTTAATAAAACGTTTTCTATGGTATTTACGACGTGGTTTAACAC
+
BBCDDDDDHHHHHJJJHIHJHJEJJJJJHEGGEHIHIJJGIHIFHGGEIGIHIIJJJJJIEHGEH@EEBDFFEED@CCCDCEFDDDBDD@DDBDDCCCC>

Внутри файла я бы хотел редактировать каждую строку, начинающуюся с "@SRR". В этой строке после константы «@ SRR5874687.1.17X.2», где X - это число, которое увеличивается на 1 в каждой следующей строке, я хочу добавить пробел и X, а затем константу / 2, поэтому результат будет this: "@ SRR5874687.1.17X.2 X / 2 length = 100". (например: "@ SRR5874687.1.171.2 1/2 длина = 100" и "@ SRR5874687.1.172.2 2/2 длина = 100")

Я свободен sh новичок с использованием awk и регулярное выражение, но до сих пор мне удалось получить "@ SRR5874687.1.17X.2 length = 100 X / 2", и я только не знаю, как поставить его до "length = 100".

Я использовал Метод awk:

awk '/^@SRR/{$0=$0" "(++i) " /2"}1' test.txt > out.txt

1 Ответ

4 голосов
/ 30 марта 2020

Вы можете заменить первый пробел на строку:

awk '/^@SRR/{sub(/ /, " " ++i " /2 ")}1' test.txt > out.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...