The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
Google UNIX.COM



View Single Post in UNIX Forums - Click on the Thread or Permalink to View Entire Thread -->
  #6 (permalink)  
Old 08-07-2007
Sangal-Arun Sangal-Arun is offline
Registered User
 

Join Date: Aug 2007
Location: New Delhi India/Denver USA
Posts: 4
one good logic is to ...cut and have column 2nd then 1st on each line from passwd file and redirect the output to file lets say a1. Then do the same on other passwd file and save the file as a2. Sort both file one by one and redirect output to a1sorted and a2sorted. Now run "sdiff a1sorted a2sorted"
and it will show you where we have extra members or less members..


arun

Quote:
Originally Posted by paqman View Post
I searched through the forums, and there are a couple threads that have a similar problem to mine, but they don't seem to exactly address my problem.

I'm running an HP-UX box, trying to create a little script that will compare the /etc/passwd file with another file I have created.

Each line in this file, let's call it /etc/myusers, has a pin that the user has chosen (not necessarily unique), then their userid, then the comments field from /etc/passwd. (basically their full name, phone number, all that jazz.

Here is an example:





I basically want to make sure that every account in my /etc/passwd file is also in this file. So all I want to do is go through each line in /etc/passwd, and search for each userid in this custom file. If the name DOESN'T exist in my custom file, I want to print it out (from /etc/passwd) to the screen, or a file, or whatever, so I can go through and add all the accounts to this file.

It should be fairly simple, I just can't quite figure it out.

I was thinking of just doing an awk on the /etc/passwd file and pulling out all the usernames to a file, and then doing a for loop through that file, or something like this:


Code:
root# awk -F: '{ print $1 }' /etc/passwd > users.txt

root# for x in `cat users.txt` ; do
>grep $x /etc/myusers
>if no result, print to file or whatever...?
Just not quite sure what.

Thanks for your help.
Reply With Quote