AWK和规律 [英] AWK and regular patterns

查看:142
本文介绍了AWK和规律的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个序列,例如:

 > sequence.fasta
GATCCAAAACACATTCTCCCTGGTAGCATGGACAAGCAACATTTTGGGAGAAATGGAGCAAAAAAACATA
AACTTCACAGTAACAAACATAAACACTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTC
TCTCTCTCCACACACACACACACTCGCACTCACAGCCTCACAACACAGGTATACATGTTTACTTAGGTCA
CTCAGAATTGTAAACTGTAAGTGTGCCTTGCAAAGAACCACTGCTCCTTACAGTGAGCAGTGCTTACCTG

和与此code:

 的awk'{如果(!NR = 1){printf的$ 0}}'sequence.fasta | AWK'{子(/ ATG /\\ n&安培;)} 1 | awk的'NR == 2|折叠-w 60 | AWK'{GSUB(/.../,\"&安培;)} 1'

我产生这种输出(例子):

  ATG TTA ACT TTT ACA TGT TAC CTT TTG ATG TGT GAT GAG AAG ACG ATG CAT ACT TAG AAT
GCT TTT TAG GCA ATC TTC AAG AGT ATT TTA CTT CTA TTG AAA ATA AAT AAA TAA ATT CAA
ATT TTA TTC TTA AAA ATC TAT AAT TTT TTG TAT TAA CCA AAC TTA AAT CAA ATC GTA AGG
GCT GTT AGA TAA GAT AGG TGA TAT TTC TCA AGA AGT TTT ACA TTT TAT AAT GCT CTC CAA
ATG ATC TTA ATG GTT AAA TCT AAG TTT TTA TTC TTA CCT GTA TGA AAA TAC AAA GTT TAT

我想找到TAA,TGA或TAG,并有从一个元素(ATG)的输出为TAATGA或TAG...所需的输出:

  ATG TTA ACT TTT ACA TGT TAC CTT TTG ATG TGT GAT GAG AAG ATG TGA


解决方案

使用这个code。通过自己解决:

 的awk'{为(i = 1; I< = NF;我++){printf的$ I;如果($ I〜/ TAA / || $ I〜/标签/ || $ I〜/ TGA /){退出}}}

I have a sequence, for example:

>sequence.fasta
GATCCAAAACACATTCTCCCTGGTAGCATGGACAAGCAACATTTTGGGAGAAATGGAGCAAAAAAACATA
AACTTCACAGTAACAAACATAAACACTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTC
TCTCTCTCCACACACACACACACTCGCACTCACAGCCTCACAACACAGGTATACATGTTTACTTAGGTCA
CTCAGAATTGTAAACTGTAAGTGTGCCTTGCAAAGAACCACTGCTCCTTACAGTGAGCAGTGCTTACCTG

and with this code:

awk '{if (NR!=1) {printf $0}}' sequence.fasta | awk '{sub(/ATG/, "\n&")}1' | awk 'NR==2' | fold -w 60 | awk '{gsub(/.../,"& ")}1'

I produce this output (an example):

ATG TTA ACT TTT ACA TGT TAC CTT TTG ATG TGT GAT GAG AAG ATG ACG ACT CAT TAG AAT 
GCT TTT TAG GCA ATC TTC AAG AGT ATT TTA CTA CTT TTG AAA ATA AAT AAA TAA ATT CAA 
ATT TTA TTC TTA AAA ATC TAT AAT TTT TTG TAT TAA CCA AAC TTA AAT ATC CAA GTA AGG 
GCT GTT AGA TAA GAT AGG TGA TAT TTC TCA AGT AGA TTT ACA TTT TAT AAT GCT CTC CAA 
ATG ATC TTA ATG GTT AAA TCT AAG TTT TTA TTC TTA CCT GTA TGA AAA TAC AAA GTT TAT 

I'd like to find "TAA", "TGA" or "TAG", and have an output from first element (ATG) to "TAA, "TGA" or "TAG"... The desired output:

ATG TTA ACT TTT ACA TGT TAC CTT TTG ATG TGT GAT GAG AAG ATG TGA

解决方案

Solved by myself using this code:

awk '{for (i=1; i<=NF; i++) {printf $i" "; if ($i~/TAA/ || $i~/TAG/ || $i~/TGA/) {exit}}}'

这篇关于AWK和规律的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆