Number of non repeating lines - unique count Number of non repeating lines - unique count bash bash

Number of non repeating lines - unique count


You could try using uniq man uniq and do the following

sort file | uniq -u | wc -l


Here's how I'd solve the problem:

... | awk '{n[$0]++} END {for (line in n) if (n[line]==1) num++; print num}'

But that's pretty opaque. Here's a (slightly) more legible way to look at it (requires bash version 4)

... | {    declare -A count    # count is an associative array    # iterate over each line of the input    # accumulate the number of times we've seen this line    #    # the construct "IFS= read -r line" ensures we capture the line exactly    while IFS= read -r line; do        (( count["$line"]++ ))    done    # now add up the number of lines who's count is only 1            num=0    for c in "${count[@]}"; do        if (( $c == 1 )); then            (( num++ ))        fi    done    echo $num}