【问题标题】:using awk to parse a specific condition使用 awk 解析特定条件
【发布时间】:2015-03-15 01:24:55
【问题描述】:

我正在尝试使用awk来解析多个条件,但在第一个条件下遇到了一些问题。我认为下面的代码很接近,但它没有返回所需的输出。解析规则是:谢谢:)。

  1. NC_ 之后的四个零(并非总是如此)和 . 之前的数字。
  2. 克。 ### g.###
  3. c
  4. t

    awk -F"[_.>]" 'FNR>1 {X=$4+0;子(X,“”,$ 4);打印 $2+0, X, X, $4, $5}' OFS="\t" ${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

【问题讨论】:

  • 这看起来与您在此处的其他问题非常相似:stackoverflow.com/questions/29038614/…
  • 是的,但是我稍微修改了脚本并发布了一些数据......如果我做错了,我深表歉意,但我虽然这可能更容易阅读。谢谢你:)。

标签: awk


【解决方案1】:

应该这样做:

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

【讨论】:

    猜你喜欢
    • 2013-11-26
    • 1970-01-01
    • 2012-12-24
    • 2012-03-06
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多