代码之家  ›  专栏  ›  技术社区  ›  justaguy

awk提取文件中包含匹配模式和可变数字的行

  •  2
  • justaguy  · 技术社区  · 7 年前

    我正在尝试使用 awk 提取 $2 exon (some digit that is 1-99) sequence 。文本将始终相同,但数字将是可变的。

    tab-delimeted

    Tier 2  exon 10 sequence    xxxxx
    Tier 2  full sequence   yyyyy
    Tier 1  exon 5 sequence aaaaa
    

    标签已删除

    Tier 2  exon 10 sequence    xxxxx
    Tier 1  exon 5 sequence aaaaa
    

     awk '$2 ~ /^exon [0-9][0-9] sequence$/' file
    
    4 回复  |  直到 7 年前
        1
  •  3
  •   Serge    7 年前

    使用awk

    awk   '/exon\s+[0-9]+\s+sequence/  {print $0}'  file
    

     grep -P 'exon\s+[0-9]+\s+sequence' file
    
        2
  •  1
  •   Ed Morton    7 年前
    awk -F'\t' '$2 ~ /exon [1-9][0-9]? sequence/' file
    

    注意,用于 1-99 [1-9][0-9]? [0-9][0-9]? 0 (以及 00 , 01

        3
  •  1
  •   Claes Wikner    7 年前
    awk '$3 ~ /exon/' file
    
    Tier 2  exon 10 sequence    xxxxx
    Tier 1  exon 5 sequence aaaaa
    
        4
  •  1
  •   dawg    7 年前

    鉴于:

    awk 'BEGIN{FS="\t"; OFS="|"} $1=$1' file 
    Tier 2|exon 10 sequence|xxxxx
    Tier 2|full sequence|yyyyy
    Tier 1|exon 5 sequence|aaaaa
    

    (即,选项卡位于 | 在上面)

    $ awk -F"\t" '$2~/exon[ ]+[0-9][0-9]?/' /tmp/file 
    Tier 2  exon 10 sequence    xxxxx
    Tier 1  exon 5 sequence aaaaa