Здравствуйте!
Второй день мучаюсь, никак не могу решить, казалось бы, несложную задачу.
Дано: текстовой файл вида:
BaitID Sequence
000001 GTGGAGGGAGAGAAGAAGATGTGCCGCATGTGTGGGGCCCCCACAGTGAGCCTGGAAGCACCAGAGCCACT
000002 GCACTGTTGCACAGCCTCTGGGCAGTGCAGAGCCTCTGGGCAGTCTCTGTCCCTCATCAGGACGGCTGATG
000003 TGTCTTCATGACATCAAACCCTGGGTACCCATGGCCTTCTGTTAGCTCGTGGGGTGTCTTCATTTTTGAGA
000004 GGGGGATGGCGGGGCTCACTTGTTTCCTTCTCTTGGGCCTGCACAGTAACAGCCCACAGTGTCTATAAGAT
000005 AACTCTTTCTGAAAATGAACTCAAATCTTGTGTTCATGATTTCTGATTTGAAAACAAAGAAACAAAGTTGA
000006 TAAAATAGTATGTTTTTAAAAATATAGTGTAATTAGATATGCTGGCACATAATTTGTCAGATAATTGCATG
000007 AACAACTCTCCTTAATGGAGTTTGGATGCTTATGGGATATTGAGTGAATGGGAAGATTTGATGAGAGGTCA
000008 TAATTCAAAGGCATTTCTTCTCTGCATGTTCTAAACAAAAAGCATTATTATTTGCTGAGTCAGGTTATTAG
000009 CTCCAGGGTTGTCCTTGGCTTGGGGTGGTGGCTAGGAGAAGTCCCCACTCCCAGGTGGAAAGCTGTAGTTG
000010 GGGTGGGCCCTTCCTGCCTGGGTGGTCAGAGTGGGGGGCTCACACAGATCCTGAGCCAGGGCTCTAGGTGA
000011 CTGAACATCCCTGCGCAGGCTGCCTGCCCCCCACTCCCGAGGCAGATCCGATATCTTGGCTCGGCACCCCC
000012 CTCCTGAAGGGTCGTGTTCTCTTTCTCCGAGGACAAGTTCCATTTGTGATAGCCTGGAGGGGGTGCCTCGC
Надо:
1) Искать выражение (в данном случае буквосочетание CG) во второй колонке каждой строки;
2) В строках, содержащих CG, сосчитать количество CG;
3) Вывести количество CG в каждой строке в третью колонку.
Иными словами, на выходе должен получиться файл вида:
BaitID Sequence Count_of_CG
000001 GTGGAGGGAGAGAAGAAGATGTGCCGCATGTGTGGGGCCCCCACAGTGAGCCTGGAAGCACCAGAGCCACT 1
000002 GCACTGTTGCACAGCCTCTGGGCAGTGCAGAGCCTCTGGGCAGTCTCTGTCCCTCATCAGGACGGCTGATG 1
000003 TGTCTTCATGACATCAAACCCTGGGTACCCATGGCCTTCTGTTAGCTCGTGGGGTGTCTTCATTTTTGAGA 1
000004 GGGGGATGGCGGGGCTCACTTGTTTCCTTCTCTTGGGCCTGCACAGTAACAGCCCACAGTGTCTATAAGAT 1
000005 AACTCTTTCTGAAAATGAACTCAAATCTTGTGTTCATGATTTCTGATTTGAAAACAAAGAAACAAAGTTGA 0
000006 TAAAATAGTATGTTTTTAAAAATATAGTGTAATTAGATATGCTGGCACATAATTTGTCAGATAATTGCATG 0
000007 AACAACTCTCCTTAATGGAGTTTGGATGCTTATGGGATATTGAGTGAATGGGAAGATTTGATGAGAGGTCA 0
000008 TAATTCAAAGGCATTTCTTCTCTGCATGTTCTAAACAAAAAGCATTATTATTTGCTGAGTCAGGTTATTAG 0
000009 CTCCAGGGTTGTCCTTGGCTTGGGGTGGTGGCTAGGAGAAGTCCCCACTCCCAGGTGGAAAGCTGTAGTTG 0
000010 GGGTGGGCCCTTCCTGCCTGGGTGGTCAGAGTGGGGGGCTCACACAGATCCTGAGCCAGGGCTCTAGGTGA 0
000011 CTGAACATCCCTGCGCAGGCTGCCTGCCCCCCACTCCCGAGGCAGATCCGATATCTTGGCTCGGCACCCCC 4
000012 CTCCTGAAGGGTCGTGTTCTCTTTCTCCGAGGACAAGTTCCATTTGTGATAGCCTGGAGGGGGTGCCTCGC 3
Вопрос: можно ли решить эту задачу встроенными средствами консоли, т.е. без серьезного программирования? Если да, то подскажите, пожалуйста, в каком направлении следует думать. Единственное, чего я на данный момент достиг - раскрасить все CG с помощью grep 'CG' --color=auto. Но автоматически считать количество совпадений с искомым выражением в каждой строке grep, похоже, не умеет...
Заранее спасибо!