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] )
|
||
|
}
|
||
|
}
|