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, $2dan $3dari File1 ; sekarang saya harus membandingkan jika $1dari File1 sama dengan $1dari File2 ; jika benar, saya harus mengambil $3dan $4dari File2 yang tidak ada di File1 , maka saya harus pergi ke File3 dan memeriksa apakah $1dari File3 sama dengan $3dari File2 , dan $2dari File3 sama dengan $4dari File2 ; jika ya, maka saya harus memeriksa jika $2dari File1adalah sama dengan $3dari file3 , maka jika kondisi ini benar, saya harus membandingkan $3dari File1 dengan $4dari file3 , jika $3dari File1 lebih dari $4dari 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