Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Awk 将文件中的每一列与另一个文件中的一列进行比较_Awk - Fatal编程技术网

Awk 将文件中的每一列与另一个文件中的一列进行比较

Awk 将文件中的每一列与另一个文件中的一列进行比较,awk,Awk,我有file1.gz 看起来像 NC_044998.1 4013 0 TT 2 GG 0 TT 0 TT 0 TT NC_044998.1 4016 0 TT 0 TT 0 TT 2 GG 0 TT NC_044998.1 4017

我有
file1.gz
看起来像

NC_044998.1     4013    0       TT      2       GG      0       TT      0       TT      0       TT      
NC_044998.1     4016    0       TT      0       TT      0       TT      2       GG      0       TT      
NC_044998.1     4017    0       TT      0       TT      0       TT      0       TT      0       TT      
NC_044998.1     4018    0       TT      0       TA      0       TT      0       TT      0       TT      
NC_044998.1     4019    2       CC      2       CC      2       CC      2       CC      2       CC      
我需要比较
$1,$2
,加上
文件1
中每隔一列的每个字母(
$1,$2,$4的字母1
,然后
$1,$2,$4的字母2
,然后
$1,$2,$6的字母1
,然后
$1,$2,字母2
等等)到
文件2的
$1,

chromo  position        major   minor   ref     anc     knownEM nInd
NC_044998.1     4013    T       G       T       T       0.000000        1
NC_044998.1     4016    G       T       G       G       0.000000        1
NC_044998.1     4018    T       A       T       T       0.000000        1
NC_044998.1     4019    G       A       G       G       0.000000        1
NC_044998.1     3760    G       A       G       G       0.000000        1
如果有匹配项,则添加“
ref
”,否则添加“
dev
”。每个比较的结果都可以追加到最后一列,如下面的输出中所示

    NC_044998.1     4013    0       TT      2       GG      0       TT      0       TT      0       TT  ref ref dev dev ref ref ref ref ref ref  
    NC_044998.1     4016    0       TT      0       TT      0       TT      2       GG      0       TT  dev dev dev dev dev dev ref ref dev dev        
    NC_044998.1     4017    0       TT      0       TT      0       TT      0       TT      0       TT      
    NC_044998.1     4018    0       TT      0       TA      0       TT      0       TT      0       TT  ref ref ref dev ref ref ref ref ref ref     
    NC_044998.1     4019    2       CC      2       CC      2       CC      2       CC      2       CC  dev dev dev dev dev dev dev dev dev dev 
试图分两步解决

隔列拆分

awk 'BEGIN {FS = OFS = "\t"} {for (i=4; i<=12; i+=2) {sub(/./,"&\t",$i)1;} print $0};' file1

awk'BEGIN{FS=OFS=“\t”}{for(i=4;i您可以使用此
awk

awk'开始{
FS=OFS=“\t”
}
FNR==NR{
地图[$1,$2]=5美元
下一个
}
地图(1美元,2美元){

我感谢你!这些天对我来说真的几乎是一个awk训练营!
| awk 'BEGIN {FS=OFS="\t"} FNR==NR {a[$1,$2,$5]; next} FNR==1 { next } {for (i=4; i<=12; i+=3) {print $0, (($1,$2,$4) in a ? "ref":"dev"), (($1,$2,$i + 1 ) in a ? "ref":"dev")}}' file2 -
NC_044998.1 4013    0   TT  2   GG  0   TT  0   TT  0   TT ref ref dev dev ref ref ref ref ref ref
NC_044998.1 4016    0   TT  0   TT  0   TT  2   GG  0   TT dev dev dev dev dev dev ref ref dev dev
NC_044998.1 4017    0   TT  0   TT  0   TT  0   TT  0   TT
NC_044998.1 4018    0   TT  0   TA  0   TT  0   TT  0   TT ref ref ref dev ref ref ref ref ref ref
NC_044998.1 4019    2   CC  2   CC  2   CC  2   CC  2   CC dev dev dev dev dev dev dev dev dev dev