Xem xét các tệp sau:
file1
:
boo,8,1024
foo,7,2048
file2
:
foo,0,24,154
noo,0,10,561
file3
:
24,154,7,1024,0
Những gì tôi cần là đi đến File1 và kiểm tra xem $2==7
; nếu đúng, mất $1
, $2
và $3
từ File1 ; bây giờ tôi phải so sánh nếu $1
từ File1 bằng để $1
từ File2 ; nếu đúng, tôi phải đi $3
và $4
từ File2 mà không tồn tại trong File1 , sau đó tôi phải đi đến file3 và kiểm tra xem $1
từ file3 bằng $3
từ File2 , và $2
từ file3 bằng $4
từ File2 ; nếu có, thì tôi phải kiểm tra nếu $2
từ File1tương đương với $3
từ file3 , sau đó nếu tình trạng này là sự thật, tôi phải so sánh $3
từ File1 với $4
từ file3 , nếu $3
từ File1 là hơn $4
từ file3 .
Tôi đã thử đoạn script sau:
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]}}
}
}
}'
Đầu ra mong muốn là:
foo,7,2048,24,154,1024