Home > Archive > AWK > February 2005 > Compare, remove duplicates, print to new file
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Compare, remove duplicates, print to new file
|
|
| djbabin@gmail.com 2005-02-04, 3:55 pm |
| I have 1 file, backups.txt, with the following content:
successful backup for server1
successful backup for server2
successful backup for server3
successful backup for server4
no full backup for server1
no full backup for server2
no full backup for server5
no full backup for server6
no incr backup for server3
no incr backup for server4
no incr backup for server5
no incr backup for server6
I am using gawk on Windows. I would like to generate a file
identifying which servers were successfully backed up, and which were
not backed up. The results for the above file should be:
successful backup for server1
successful backup for server2
successful backup for server3
successful backup for server4
no backup for server5
no backup for server6
Thanks in advance for any help.
| |
| William James 2005-02-04, 8:55 pm |
|
z /^successful/ { succ[$NF]=1 }
z /^no .*backup/ {
z if (!($NF in succ)) nosucc[$NF]=1 }
z END {
z for (k in succ)
z print "successful backup for", k
z for (k in nosucc)
z print "no backup for", k
z }
| |
| Ed Morton 2005-02-04, 8:55 pm |
|
djbabin@gmail.com wrote:
> I have 1 file, backups.txt, with the following content:
>
> successful backup for server1
> successful backup for server2
<snip>
> no incr backup for server5
> no incr backup for server6
>
> I am using gawk on Windows. I would like to generate a file
> identifying which servers were successfully backed up, and which were
> not backed up. The results for the above file should be:
>
> successful backup for server1
> successful backup for server2
> successful backup for server3
> successful backup for server4
> no backup for server5
> no backup for server6
>
> Thanks in advance for any help.
>
gawk '/^successful/{succ[$4]=""}
{srvrs[$4]=""}
END{ for (srvr in srvrs)
if (srvr in succ)
printf "successful backup for %s\n",srvr
else
printf "no backup for %s\n",srvr
}' backups.txt
If you care about order, set the WHINY_USERS environment flag before
executing or pipe the output to sort.
Regards,
Ed.
| |
| djbabin@gmail.com 2005-02-04, 8:55 pm |
| This worked for me. Thanks!
Now how do I get the output sorted in alphabetical order by servername?
Darrin
| |
| Buck Turgidson 2005-02-04, 8:55 pm |
| On my W2000 machine, I have a sort command. You can check and see if your
Windoze has it .
X:\>type states
new york
mass
calif
X:\>sort states
calif
mass
new york
<djbabin@gmail.com> wrote in message
news:1107548599.801691.284350@g14g2000cwa.googlegroups.com...
> This worked for me. Thanks!
>
> Now how do I get the output sorted in alphabetical order by servername?
>
> Darrin
>
| |
| djbabin@gmail.com 2005-02-04, 8:55 pm |
| Yes, I am running Win2K. sort worked just fine. Problem totally
solved. Thanks everyone!
| |
| Ed Morton 2005-02-04, 8:55 pm |
|
djbabin@gmail.com wrote:
> This worked for me. Thanks!
>
> Now how do I get the output sorted in alphabetical order by servername?
>
> Darrin
>
Like I said, set "WHINY_USERS" in your environment. e.g. in UNIX given
this input file:
successful backup for server1
successful backup for server5
successful backup for server3
successful backup for server4
no full backup for server1
no full backup for server2
no full backup for server5
no full backup for server6
no incr backup for server3
no incr backup for server4
no incr backup for server5
no incr backup for server6
and this script:
gawk '{srvr=$5}
/^successful/{srvr=$4;succ[srvr]=""}
{srvrs[srvr]=""}
END{ for (srvr in srvrs)
if (srvr in succ)
printf "successful backup for %s\n",srvr
else
printf "no backup for %s\n",srvr
}' backup.txt
I get this output by default:
no backup for server2
successful backup for server3
successful backup for server4
successful backup for server5
no backup for server6
successful backup for server1
But if I do this:
export WHINY_USERS=1
and THEN invoke the script, then the output is:
successful backup for server1
no backup for server2
successful backup for server3
successful backup for server4
successful backup for server5
no backup for server6
Perhaps you thought I was joking about "WHINY_USERS" - it does seem an
unlikely name!
Ed.
| |
| djbabin@gmail.com 2005-02-07, 8:56 pm |
| Unfortunately, I'm running this on a Windows 2000 desktop, so I can't
run WHINY_USERS. Gotta love that name, though! Thanks for the help.
| |
| Kenny McCormack 2005-02-07, 8:56 pm |
| In article <1107784129.227622.127760@o13g2000cwo.googlegroups.com>,
<djbabin@gmail.com> wrote:
>Unfortunately, I'm running this on a Windows 2000 desktop, so I can't
>run WHINY_USERS. Gotta love that name, though! Thanks for the help.
Why not?
|
|
|
|
|