gpt4 book ai didi

awk - 使用模式匹配以及前 6 列从第 7 列打印特定值

转载 作者:行者123 更新时间:2023-12-04 16:24:05 25 4
gpt4 key购买 nike

文件1

1 123 ab456 A G PASS AC=0.15;FB=1.5;BV=45; 0|0  0|0  0|1  0|0  
4 789 ab123 C T PASS FB=90;AC=2.15;BV=12; 0|1 0|1 0|0 0|0

想要的输出

1 123 ab456 A G PASS AC=0.15  
4 789 ab123 C T PASS AC=2.15

我用过

awk '{print $1,$2,$3,$4,$5,$6,$7}' file1 > out1.txt
sed -i 's/;/\t/g' out1.txt
awk '{打印 $1,$2,$3,$4,$5,$6,$7,$8}' out1.txt

生成的输出

1 123 ab456 A G PASS AC=0.15  
4 789 ab123 C T PASS FB=90

我想打印前 6 列以及第 7 列中的 AC=(*) 值。

最佳答案

使用您显示的示例,请尝试以下 awk 代码。

awk '
{
val=""
while(match($7,/AC=[^;]*/)){
val=(val?val:"")substr($7,RSTART,RLENGTH)
$7=substr($7,RSTART+RLENGTH)
}
print $1,$2,$3,$4,$5,$6,val
}
' Input_file

说明:为上述添加详细说明。

awk '                             ##Starting awk program from here.
{
val="" ##Nullifying val here.
while(match($7,/AC=[^;]*/)){ ##Running while loop to use match function to match AC= till semi colon all occurrences here.
val=(val?val:"")substr($7,RSTART,RLENGTH) ##Creating val and keep adding matched regex value to it, from 7th column.
$7=substr($7,RSTART+RLENGTH) ##Assigning rest pending values to 7th column itself.
}
print $1,$2,$3,$4,$5,$6,val ##Printing appropriate columns required by OP along with val here.
}
' Input_file ##Mentioning Input_file name here.

关于awk - 使用模式匹配以及前 6 列从第 7 列打印特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68712806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com