我试图用来awk
删除最后一位数字之后的文本,并用分隔:
。这对两行都是普遍的,我相信awk
下面的第一部分会做到这一点。如果_
行中没有任何内容,$2
则重复该行$3
,我相信拆分会做到这一点。什么我不知道怎么办是,如果是_
在该行再向左的数目_
是$2
和的权数_
是$3
。谢谢 :)。
输入
chr7:140453136A>T
chr7:140453135_140453136delCAinsTT
想要的
chr7 140453136 140453136
chr7 140453135 140453136
awk
awk '{sub(/[^0-9]+$/, "", $1); {split($0,a,":"); print a[1],a[2]a[2]} 1' input
这是一个:
$ awk '
BEGIN {
FS="[:_]" # using field separation for the job
OFS="\t"
}
{
sub(/[^0-9]*$/,"",$NF) # strip non-digits off the end of last field
if(NF==2) # if only 2 fields
$3=$2 # make the $2 from $2
}1' file # output
输出:
chr7 140453136 140453136
chr7 140453135 140453136
在GNU awk,mawk,Busybox awk和awk版本20121220上进行了测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句