Grep to find single instances of each ERROR type

i have a file that contents multiple instances of the same ERROR.Below the content of the file

ERROR_FILE.txt

Archiver6.log:2009-05-25 17:58:44,385 [Thread-6] ERROR - CleanLPDataMessage: Missing Intervals: 2
Archiver6.log:2009-05-25 18:27:36,056 [Thread-6] ERROR - CleanLPDataMessage: Missing Intervals: 5
Cleaner3.log:2009-05-25 22:15:23,878 [Thread-8] ERROR - Channel information is not found in Siebel.
Cleaner3.log:2009-05-25 22:47:22,080 [Thread-8] ERROR - Channel information is not found in Siebel.
EventsAdapter.log:2009-05-25 10:57:21,034 [Timer-1] ERROR - Error in record. No PIPe mapping found for trbbitdesc=DIAG IND for serialnumber=10804396
EventsAdapter.log:2009-05-25 10:57:21,035 [Timer-1] ERROR - Error in record. No PIPe mapping found for trbbitdesc=DIAG IND for serialnumber=10804322
WMSAdapter.log:2009-05-25 08:11:01,313 [Timer-80] ERROR - Upload Process: WMS Activity for SR 1-1E2BKB not found in DB
WMSAdapter.log:2009-05-25 08:11:04,374 [Timer-80] ERROR - Upload Process: WMS Activity for SR 1-1E19FZ not found in DB
WMSAdapter.log:2009-05-25 08:11:07,274 [Timer-80] ERROR - Upload Process: WMS Activity for SR 1-1E19CZ not found in DB
WMSAdapter.log:2009-05-25 08:11:10,427 [Timer-80] ERROR - Upload Process: WMS Activity for SR 1-1E1965 not found in DB
WMSAdapter.log:2009-05-25 08:11:13,385 [Timer-80] ERROR - Upload Process: WMS Activity for SR 1-1E18J0 not found in DB

How am i suppose to get the single instances of each ERROR type from the above file?

Desired output:

Archiver6.log:2009-05-25 17:58:44,385 [Thread-6] ERROR - CleanLPDataMessage: Missing Intervals: 2
Cleaner3.log:2009-05-25 22:15:23,878 [Thread-8] ERROR - Channel information is not found in Siebel.
EventsAdapter.log:2009-05-25 10:57:21,035 [Timer-1] ERROR - Error in record. No PIPe mapping found for trbbitdesc=DIAG IND for serialnumber=10804322
WMSAdapter.log:2009-05-25 08:11:01,313 [Timer-80] ERROR - Upload Process: WMS Activity for SR 1-1E2BKB not found in DB

How the Error's are same ?...

because the SR or serial number or intervals are varying in each line.

Or do you need to display just the error message ???

let it make this way the output should display only the 1st ERROR of each type irrespective of difference in serial number or intervals

Archiver6.log:2009-05-25 17:58:44,385 [Thread-6] ERROR - CleanLPDataMessage: Missing Intervals: 2
Archiver6.log:2009-05-25 18:27:36,056 [Thread-6] ERROR - CleanLPDataMessage: Missing Intervals: 5
EventsAdapter.log:2009-05-25 10:57:21,034 [Timer-1] ERROR - Error in record. No PIPe mapping found for trbbitdesc=DIAG IND for serialnumber=10804396
EventsAdapter.log:2009-05-25 10:57:21,035 [Timer-1] ERROR - Error in record. No PIPe mapping found for trbbitdesc=DIAG IND for serialnumber=10804322

Desired output

Archiver6.log:2009-05-25 17:58:44,385 [Thread-6] ERROR - CleanLPDataMessage: Missing Intervals: 2
EventsAdapter.log:2009-05-25 10:57:21,034 [Timer-1] ERROR - Error in record. No PIPe mapping found for trbbitdesc=DIAG IND for serialnumber=10804396

i tried this :

sort -u -k6,7 error_text

and got the output

Cleaner3.log:2009-05-25 22:15:23,878 [Thread-8] ERROR - Channel information is not found in Siebel.
Archiver6.log:2009-05-25 17:58:44,385 [Thread-6] ERROR - CleanLPDataMessage: Missing Intervals: 2
EventsAdapter.log:2009-05-25 10:57:21,034 [Timer-1] ERROR - Error in record. No PIPe mapping found for trbbitdesc=DIAG IND for serialnumber=10804396
WMSAdapter.log:2009-05-25 08:11:01,313 [Timer-80] ERROR - Upload Process: WMS Activity for SR 1-1E2BKB not found in DB

i hope this is wat ur looking for.

after 300+ posts, you are not a newbie in scripting anymore. show what you have done.

Here is a sample code that will give u uniq errors in file

===========code============

cat file | cut -d ':' -f1 | sort -u >temp.txt
rm text
touch text

while read line
do
echo $line
grep -h "$line" ars.txt | head -1 >> text

done < amitt