考虑以下文件:
file1
:
boo,8,1024
foo,7,2048
file2
:
foo,0,24,154
noo,0,10,561
file3
:
24,154,7,1024,0
我需要转到File1并检查是否$2==7
;如果为true,则从File1中获取$1
,$2
并$3
从File1中获取;现在我必须比较$1
从File1等于$1
从File2;如果是真的,我不得不采取$3
并$4
从文件2,其不存在于文件1,那么我必须去文件3,检查是否$1
从文件3等于$3
从文件2,并$2
从文件3等于$4
从文件2 ; 如果是,那么我必须检查是否$2
来自File1等于$3
从文件3,那么如果这种情况是真的,我有比较$3
从File1中有$4
来自文件3,如果$3
从文件1大于$4
从文件3。
我尝试了以下脚本:
cat [file1] [file2] [file3] |
awk -F,
'{if(NF==3)
{if($2==7){a[$1]=$1; b[$1]=$2; c[$1]=$3}
}else
{if(NF==4){if(a[$1]==$1){d[$3]=$3; e[$4]=$4}
}else
{if(NF==5){if(d[$1]==$1 && e[$2]==$2){print a[$1], b[$1], c[$1], d[$1]}}
}
}
}'
所需的输出是:
foo,7,2048,24,154,1024