On 11/18/20 12:25 PM, Chris Elvidge wrote: > You could write your own function to do it. E.g. > > unique() { > [ "$1" ] || { echo "Needs a readable file to test" && return 1; } > [ -r "$1" ] || { echo "Needs a readable file to test" && return 1; } > R=""; N=0 > while IFS=$'\n' read L; do > [ "$L" = "$R" ] && { ((N++)); continue; } > [ "$N" -gt 0 ] && { echo "[Previous line repeated $N times]"; N=0; } > R="$L" > echo "$L" > done <$1 > }
Nice. The UNIX toolbox is diverse. ;-) I'd use: awk ' function p(n) { if (n > 1) { printf("[previous line repeated %d times]\n", n-1); } } { if (line != $0) { p(n); n = 0; } line = $0; if (n == 0) print n++; } END { p(n); } ' Have a nice day, Berny