Next: , Previous: uniq, Up: Examples


4.15 Print Duplicated Lines of Input

This script prints only duplicated lines, like ‘uniq -d’.

     #!/usr/bin/sed -nf
     
     $b
     N
     /^\(.*\)\n\1$/ {
         # Print the first of the duplicated lines
         s/.*\n//
         p
     
         # Loop until we get a different line
         :b
         $b
         N
         /^\(.*\)\n\1$/ {
             s/.*\n//
             bb
         }
     }
     
     # The last line cannot be followed by duplicates
     $b
     
     # Found a different one.  Leave it alone in the pattern space
     # and go back to the top, hunting its duplicates
     D