下面的awk
会捕获下面input
中第1-5行的所需输出。我正在努力使用第六行,似乎无法在awk
中添加一部分来捕获和打印第6行,如同所需的输出一样。打印id
以及-
之后的部分。我已经尝试添加一个分割,但仅打印字段5中的数字。我为长篇文章道歉只是试图包含细节,因为我似乎无法弄清楚这一点。谢谢:))
已尝试
{
split($4,F,/_/)
if(split($4,A,/[_]/)) {
if(A[2]~/[[:alpha:]]/)
p=A[2]
}
}
{
print "chr" $1, $2, $3, "chr" $1 ":" $2 "-" $3 OFS p
}
输入 tab-delimeted
6 18122723 18122843 469_380805_378884(NHLRC1)_1.1_1
6 31114121 31114241 344047_16724314_rs746647_1
6 31430946 31431066 344049_16724385_HCP5(10866)_1_1
6 32808479 32808599 445446_18754304_PSMB8-exon6_1
1 33478785 33478905 19186497_AK2-Exon1_1
1 24022788 24022908 466743_18956150_RPL11-NM_000975-exon6_1
所需的输出 tab-delimeted
chr6 18122723 18122843 chr6:18122723-18122843 NHLRC1
chr6 31114121 31114241 chr6:31114121-31114241 rs746647
chr6 31430946 31431066 chr6:31430946-31431066 HCP5
chr6 32808479 32808599 chr6:32808479-32808599 PSMB8-exon6
chr1 33478785 33478905 chr1:33478785-33478905 AK2-Exon1
chr1 24022788 24022908 chr1:24022788-24022908 RPL11-exon6
AWK
awk '
{
split($4,F,/_/)
if(split(F[3],G,/[)(]/)) {
if(G[2]~/[[:alpha:]]/)
p=G[2]
else
p=G[1]
}
else
p=F[3]
}
{
split($4,F,/_/)
if(split($4,A,/[_]/)) {
if(A[2]~/[[:alpha:]]/)
p=A[2]
}
}
{
print "chr" $1, $2, $3, "chr" $1 ":" $2 "-" $3 OFS p
}
' FS='\t' OFS='\t' input
当前输出 tab-delimeted
chr6 18122723 18122843 chr6:18122723-18122843 NHLRC1
chr6 31114121 31114241 chr6:31114121-31114241 rs746647
chr6 31430946 31431066 chr6:31430946-31431066 HCP5
chr6 32808479 32808599 chr6:32808479-32808599 PSMB8-exon6
chr1 33478785 33478905 chr1:33478785-33478905 AK2-Exon1
chr1 24022788 24022908 chr1:24022788-24022908 RPL11-NM
答案 0 :(得分:2)
您显示的输出的最后一行似乎与您的法律相符(适用于所有其他行),考虑到这是一个拼写错误,请尝试关注。
awk '
{
if($NF ~ /\(/){
sub(/.*\(/,"",$NF);
sub(/\).*/,"",$NF)}
else {
num=split($NF,array,"_");
$NF=array[num-1]}
}
{
$NF=$1":"$2"-"$3 OFS $NF
}
1
' Input_file
答案 1 :(得分:2)
这是另一种方法
$ awk 'BEGIN (FS=OFS="\t"}
{n=split($NF,a,"[_()-]");
key=sep="";
for(i=1;i<=n;i++) if(a[i]~/[a-zA-Z]+[0-9]+/)
{key=key sep a[i]; sep="-"}
print $1,$2,$3,"chr"$1":"$2"-"$3,key }' file
6 18122723 18122843 chr6:18122723-18122843 NHLRC1
6 31114121 31114241 chr6:31114121-31114241 rs746647
6 31430946 31431066 chr6:31430946-31431066 HCP5
6 32808479 32808599 chr6:32808479-32808599 PSMB8-exon6
1 33478785 33478905 chr1:33478785-33478905 AK2-Exon1
1 24022788 24022908 chr1:24022788-24022908 RPL11-exon6