Anonymous
public text v1 · immutable#!/usr/bin/awk -f
function collapse(s,p,q, t, pre, rest) {
t=substr(s,p,q-p)
pre=substr(s,1,p-1)
rest=substr(s,q)
while (substr(rest,1,q-p)==t) {
rest=substr(rest,q-p+1)
}
return pre t rest
}
{
for(i=1;i<length;++i) {
b=$0
k=0
for(j=int((length+i+1)/2); !collapsed && j>i;--j) {
c=collapse($0,i,j)
if(length(c) < length(b)) {
b=c
k=j
}
}
$0=b
if (k > 0) {
i=k-1
}
}
print
}