IMP note - date and time filed can have any value , no rule. 2nd column , DONE and REDONE can have any combination , we just need to find out what is present in 2nd column and fetch one occurrence from each time for DONE and REDONE .
thanks guys , i am able to handle this situation . actually i used both methods from chubler_XL and vgersh99 .
let me explain in details what exactly i have and why i used both and still may be we can use one method instead of 2.
i am extracting some data from 2 tables , that will be in a text file.
now i want to sort/extract data from that text file based on my requirement .
date may vary , and so status .
for each num, Status can be any value , either DONE or REDONE. for same NUM, sequence can be DONE, DONE, REDONE, DONE
but if i use awk 'a!=$2{print;a=$2}' myFile -> it returns DONE, REDONE , DONE only for same NAME column.
if ENV column values are different but STATUS column value is same(DONE or REDONE), above logic will not work, it will return one row only. then i used this logic awk '!a[$2,$4,5]++' infile
how to get desired output in one command , right now i am using both logic in IF loop
NUM Status NAME ENV DATE Time
100050596 DONE PAB scotau1@csomrc1 23-SEP-14 06:49:33
100050596 DONE PAB scotau1@csomrc1 23-SEP-14 06:49:36
100050596 DONE PAB scotau1@csomrc1 23-SEP-14 06:49:38
100050596 DONE PAB scotau2@csomrc1 23-SEP-14 06:51:51
100050596 DONE PAB scotau2@csomrc1 23-SEP-14 06:51:53
100050596 DONE PAB scotau2@csomrc1 23-SEP-14 06:51:56
100050596 DONE PAB scotau3@csomrc1 23-SEP-14 06:53:05
100050596 DONE PAB scotau3@csomrc1 23-SEP-14 06:53:08
100050596 DONE PAB scotau3@csomrc1 23-SEP-14 06:53:10
100051482 DONE SMO occbap1@hppabc1 24-SEP-14 20:58:42
100051482 DONE SMO occbap1@hppabc1 24-SEP-14 20:58:56
100051482 DONE SMO occbap1@hppabc1 24-SEP-14 20:59:09
100051482 UNDONE SMO occbap1@hppabc1 24-SEP-14 21:04:25
100051482 UNDONE SMO occbap1@hppabc1 24-SEP-14 21:04:38
100051482 UNDONE SMO occbap1@hppabc1 24-SEP-14 21:04:51
100051482 DONE SMO occbap1@hppabc1 24-SEP-14 21:05:52
100051482 DONE SMO occbap1@hppabc1 24-SEP-14 21:06:06
100051482 DONE SMO occbap1@hppabc1 24-SEP-14 21:06:19
100051482 DONE SMO occbap1@hppabc1 24-SEP-14 21:06:32
100051482 DONE SMO occbap1@hppabc1 24-SEP-14 21:07:25
100051482 DONE SMO occbap1@hppabc1 24-SEP-14 21:07:38
100051482 DONE SMO occbap1@hppabc1 24-SEP-14 21:07:51
100051482 DONE SMO occbap1@hppabc1 24-SEP-14 21:08:04
my earlier logic in IF loop was missing some info which is coming now using your new command but still few info is missing , let me tell you that:
logic which i am using [file.lst is having all the extracted data from DB tables]
for i in `cat file.lst|awk '{print $1}'|sort|uniq`
do
if [[ `cat file.lst |grep $i |awk '{print $2}'|grep UNDONE |wc -l` -gt "0" ]]
then
cat file.lst |grep $i |awk 'a!=$2{print;a=$2}'
else
cat file.lst |grep $i |awk '!a[$2,$4,5]++'
fi
done >> file.tmp
using this code , i was not getting below type of info, which i am getting now using your latest command:
earlier