Pertimbangkan file-file berikut:
file1
:
boo,8,1024
foo,7,2048
file2
:
foo,0,24,154
noo,0,10,561
file3
:
24,154,7,1024,0
Yang saya butuhkan adalah pergi ke File1 dan periksa apakah $2==7
; jika benar, ambil $1
, $2
dan $3
dari File1 ; sekarang saya harus membandingkan jika $1
dari File1 sama dengan $1
dari File2 ; jika benar, saya harus mengambil $3
dan $4
dari File2 yang tidak ada di File1 , maka saya harus pergi ke File3 dan memeriksa apakah $1
dari File3 sama dengan $3
dari File2 , dan $2
dari File3 sama dengan $4
dari File2 ; jika ya, maka saya harus memeriksa jika $2
dari File1adalah sama dengan $3
dari file3 , maka jika kondisi ini benar, saya harus membandingkan $3
dari File1 dengan $4
dari file3 , jika $3
dari File1 lebih dari $4
dari file3 .
Saya mencoba skrip berikut:
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]}}
}
}
}'
Output yang diinginkan adalah:
foo,7,2048,24,154,1024