Generate run length encoding of a string in AWK
function rle(in_string) {
# Generate Run Length Encoding
cp = ""; j = 0; out = "";
for(i=1; i <= length(in_string); i++) {
if ( cp == substr(in_string, i, 1) ) {
j++;
} else {
if ((i > 1 && j > 2)) {
out = out j cp;
} else {
out = out cp;
}
j = 1
}
cp = substr(in_string, i, 1)
}
if (i - 1 == length(in_string) && j > 2) {
out = out j cp;
} else if (j > 1) {
out = out cp cp
} else {
out = out cp;
}
return out;
}