Operating System - HP-UX
1829596 Members
1698 Online
109992 Solutions
New Discussion

Sorting and extracting lines in a file

 
SOLVED
Go to solution
Michael Campbell
Trusted Contributor

Sorting and extracting lines in a file

Folks

A very quick one for someone i'm sure. I have a file which consists of lines such as

ldagtv20.log|E-AGTV-AUTH-DATE - '33002000'
ldagtv20.log|E-AGTV-AUTH-DATE - '33001999'
ldagtv20.log|E-AGTV-AUTH-DATE - '33001998'
ldagtv20.log|E-AGTV-AUTH-DATE - '33001997'
ldagtv20.log|E-AGTV-AUTH-DATE - '33001996'
ldagtv20.log|E-AGTV-AUTH-DATE - '32032002'
ldagtv26.log|E-AGTV-AUTH-DATE - '33002000'
ldagtv26.log|E-AGTV-AUTH-DATE - '33001999'
ldagtv26.log|E-AGTV-AUTH-DATE - '33001998'
ldagtv26.log|E-AGTV-AUTH-DATE - '33001997'
ldagtv26.log|E-AGTV-AUTH-DATE - '33001996'
ldagtv26.log|E-AGTV-AUTH-DATE - '32032002'
ldagtv30.log|E-AGTV-AUTH-DATE - '33002000'
ldagtv30.log|E-AGTV-AUTH-DATE - '33001999'
ldagtv30.log|E-AGTV-AUTH-DATE - '33001998'
ldagtv30.log|E-AGTV-AUTH-DATE - '33001997'
ldagtv30.log|E-AGTV-AUTH-DATE - '33001996'
ldagtv30.log|E-AGTV-AUTH-DATE - '32032002'


I would like to only bring back the first occurence of each log error e.g. ldagtv20.log|E-AGTV-AUTH-DATE - '33002000' but not any of the other ldagtv20.log|E-AGTV-AUTH-DATE lines .

Does anyone have any ideas on how to do this?

Any Help Appreciated

Michael
3 REPLIES 3
John Poff
Honored Contributor
Solution

Re: Sorting and extracting lines in a file

Hi Michael,

Using the 'sort' command I was able to get these results [I put your data in a file named sort.dat]:

>sort -t"|" -k 1,1 -u
ldagtv20.log|E-AGTV-AUTH-DATE - '32032002'
ldagtv26.log|E-AGTV-AUTH-DATE - '32032002'
ldagtv30.log|E-AGTV-AUTH-DATE - '32032002'


Is that what you had in mind?

JP
Stuart Abramson_2
Honored Contributor

Re: Sorting and extracting lines in a file

Something like:

cat file | while read FIRST DASH NUMBER
do
if [[ $FIRST != $LAST ]]
then
# new file
print $FIRST $DASH $NUMBER
LAST=$FIRST
else
continue #skip
fi
done
Jack Werner
Frequent Advisor

Re: Sorting and extracting lines in a file

Michael,

Try sort -u file > sort.file

Also, see the sort man pages.

Jack
i'm retired