2015-03-14 6 views
0

Я пытаюсь использовать awk для анализа нескольких условий и возникновения некоторых проблем с первым. Я думаю, что приведенный ниже код близок, но он не возвращает желаемый результат. Правила синтаксического анализа: Спасибо.Использование awk для синтаксического анализа определенного состояния

  1. 4 нули после NC_ (не всегда в случае) и цифры перед.
  2. g. ### г ###
  3. гр
  4. т

    AWK -F "[_>.]" «FNR> 1 {Х = $ 4 + 0. sub (X, "", $ 4); печать $ 2 + 0, X, X, $ 4, $ 5}»ФСУ = "\ т" $ {ID} _position.txt> $ {ID} _parse.txt

id_position.txt

Input Variant Errors Chromosomal Variant Coding Variant(s) 
NM_004004.5:c.79G>A  NC_000013.10:g.20763642C>T NM_004004.5:c.79G>A XM_005266354.1:c.79G>A XM_005266355.1:c.79G>A XM_005266356.1:c.79G>A 

Желаемый результат:

13  20763642  20763642  C  T 
+0

Это выглядит очень похоже на ваш другой вопрос здесь: Http: //stackoverflow.com/questions/29038614/using-awk-to-display-warning-message-from-a-specific-file-location – Jotne

+0

Это, но я немного изменил сценарий и разместил некоторые данные ... I извиниться, если я сделал это неправильно, но, хотя это, возможно, было бы легче читать. Спасибо :). – Chris

ответ

0

Это должно сделать:

awk 'NR==2 {split($2,a,"[_.>]");b=substr(a[4],1,length(a[4]-1));print a[2]+0,b,b,substr(a[4],length(a[4])),a[5]}' OFS="\t" file 
13  20763642  20763642  C  T 
+0

Большое спасибо, он отлично работает :). – Chris

+0

@Chris Добро пожаловать. – Jotne

Смежные вопросы