#!/usr/bin/perl -l # http://perlmonks.org/?node_id=1172420 use strict; use warnings; my %counter; while() { chomp; my @parts = split /\|/; $counter{ join ' ', @parts[0, 4, 1] }++; } for (sort keys %counter) { my @parts = split; print join '|', @parts[0, 1], $counter{$_}, $parts[2]; } __DATA__ CC225|Rosha|xyz|2221|b1 CC225|Rosha|xyz|2230|b1 CC225|Rosha|xyz|2221|b1 CC225|Rosha|xyz|2221|b1 CC225|Roshw|xyz|2222|b2 CC225|Roshw|xyz|2230|b2 CC222|Roqsha|xyz|2222|b1 CC222|Roqsha|xyz|2244|b1 CC222|Roqsh|xyz|2221|b2 CC222|Roqsh|xyz|2111|b2