#!/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;ii;--j) { c=collapse($0,i,j) if(length(c) < length(b)) { b=c k=j } } $0=b if (k > 0) { i=k-1 } } print }