45 lines
804 B
Awk
45 lines
804 B
Awk
function abs(n){
|
|
return (n>=0) ? n : -n
|
|
}
|
|
|
|
function diff(s1, s2){
|
|
split(s1,a1,",")
|
|
split(s2,a2,",")
|
|
sr = ""
|
|
for(i in a1)
|
|
sr = sr abs(a1[i]-a2[i]) (i<3? "," : "")
|
|
return sr
|
|
}
|
|
|
|
function similar(d1, d2){
|
|
split(d1,a1,",")
|
|
split(d2,a2,",")
|
|
if(a1[1]==a2[1] && a1[2]==a2[2] && a1[3]==a2[3]) return 1
|
|
if(a1[1]==a2[1] && a1[2]==a2[3] && a1[3]==a2[2]) return 2
|
|
if(a1[1]==a2[2] && a1[2]==a2[1] && a1[3]==a2[3]) return 3
|
|
if(a1[1]==a2[2] && a1[2]==a2[3] && a1[3]==a2[1]) return 4
|
|
if(a1[1]==a2[3] && a1[2]==a2[1] && a1[3]==a2[2]) return 5
|
|
if(a1[1]==a2[3] && a1[2]==a2[2] && a1[3]==a2[1]) return 6
|
|
return -1
|
|
}
|
|
|
|
BEGIN{
|
|
|
|
}
|
|
NR%2==1{
|
|
s1 = $0
|
|
next
|
|
}
|
|
|
|
{
|
|
r = diff(s1,$0)
|
|
diffs[++diffsp] = r
|
|
}
|
|
|
|
END{
|
|
print diffsp
|
|
for(i=1; i<diffsp; i++){
|
|
print diffs[i], diffs[i+1],similar( diffs[i], diffs[i+1] )
|
|
}
|
|
}
|