#!/usr/bin/gawk -f BEGIN { FS = "" } { previous = "" for (i = 1; i <= NF; i = i + 1) { if ($i ~ /I/) { if (previous ~ /[[:lower:]]/) { printf("l") previous = "l" } else if (i == 1) { printf("%s",$i) previous = $i } else if ((previous ~ /-/) && (i == 2)) { printf("%s",$i) previous = $i } else if (i < NF) { for (j = 1; i + j < NF; j = j + 1) { if ($(i+j) ~ /[[ \n]]/) { j = NF break } else if ($(i+j) ~ /[[:lower:]]/) { break } } if (i + j < NF) { printf("l") previous = "l" } else { printf("%s",$i) previous = $i } } else { printf("%s",$i) previous = $i } } else { printf("%s",$i) previous = $i } } printf("\n") }