Sponsored Content
Full Discussion: Compare 2 files
Top Forums Shell Programming and Scripting Compare 2 files Post 302337302 by tmarikle on Thursday 23rd of July 2009 07:31:06 PM
Old 07-23-2009
Quote:
Originally Posted by PrasannaKS
HI

I have a list of items in 2 files. Some items are present in both the files in any order. Say for example item name is 'apple', it may be present in line 2 of file 1 and line 10 of file 2.

I want to see the missing items only. In simple terms, Items present in file1 if not in file2 then output the missing items to another file as "<itemname> not in file2.

thanks
Two ways in perl:

Code:
file1:

apples
pears
oranges

Code:
file2:

apples

Code:
m1.pl

#!/usr/bin/perl
while (<>) {
    chomp;
    if ($ARGV=~/file2/) {
        $keys{$_}++;
    } else {
        print "$_\n" if (! $keys {$_});
    }
}

$ ./m1.pl file2 file1
pears
oranges

Code:
m2.pl

#!/usr/bin/perl

open FILE, "< $ARGV[1]" or die "Can't find $ARGV[1]: $!";
while (<FILE>) {
    chomp;
    $keys{$_}++;
}
close FILE;

open FILE, "< $ARGV[0]" or die "Can't find $ARGV[0]: $!";
while (<FILE>) {
    chomp;
    print "$_\n" if (! $keys {$_});
}
close FILE;

$ ./m2.pl file1 file2
pears
oranges

Personally, I prefer methods like these over sort because they can process millions and millions of records in both files very fast passing through each set only once.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

compare two files

I have file1 and file2: file1: 11 xxx kksd ... 22 kkk kdsglg... 33 sss kdfjdksa... 44 kdsf dskjfkas ... hh kdkf kdkkd.. jg dkf dfkdk ... ... file2: jg 22 hh ... I need to check each line of file1. if the field one is in file2, I will keep it; if not, the whole line will be... (17 Replies)
Discussion started by: fredao
17 Replies

2. Shell Programming and Scripting

compare two files and to remove the matching lines on both the files

I have two files and need to compare the two files and to remove the matching lines from both the files (4 Replies)
Discussion started by: shellscripter
4 Replies

3. Shell Programming and Scripting

compare files in two directories and output changed files to third directory

I have searched about 30 threads, a load of Google pages and cannot find what I am looking for. I have some of the parts but not the whole. I cannot seem to get the puzzle fit together. I have three folders, two of which contain different versions of multiple files, dist/file1.php dist/file2.php... (4 Replies)
Discussion started by: bkeep
4 Replies

4. Shell Programming and Scripting

How to compare 2 files & get only few columns based on a condition related to both files?

Hiiiii friends I have 2 files which contains huge data & few lines of it are as shown below File1: b.dat(which has 21 columns) SSR 1976 8 12 13 10 44.00 39.0700 70.7800 7.0 0 0.00 0 2.78 0.00 0.00 0 0.00 2.78 0 NULL ISC 1976 8 12 22 32 37.39 36.2942 70.7338... (6 Replies)
Discussion started by: reva
6 Replies

5. Shell Programming and Scripting

Compare 2 folders to find several missing files among huge amounts of files.

Hi, all: I've got two folders, say, "folder1" and "folder2". Under each, there are thousands of files. It's quite obvious that there are some files missing in each. I just would like to find them. I believe this can be done by "diff" command. However, if I change the above question a... (1 Reply)
Discussion started by: jiapei100
1 Replies

6. Shell Programming and Scripting

Require compare command to compare 4 files

I have four files, I need to compare these files together. As such i know "sdiff and comm" commands but these commands compare 2 files together. If I use sdiff command then i have to compare each file with other which will increase the codes. Please suggest if you know some commands whcih can... (6 Replies)
Discussion started by: nehashine
6 Replies

7. Shell Programming and Scripting

Compare files

Please help me with awk.I have two files with the below details file1 123456789 2012 987654321 2011 a1234567892012 a1234abcde2012 b1234567892012 c1234567892012 98765a12342012 file2 a1234 01234 b1234 33333 I need to check whether the items in file2 is present in file1 .If it is... (2 Replies)
Discussion started by: Mary James
2 Replies

8. Shell Programming and Scripting

Compare two files, then overwrite first file with only that in both files

I want to compare two files, and search for items that are in both. Then override the first file with that containing only elements which were in both files. I imagine something with diff, but not sure. File 1 One Two Three Four Five File 2 One Three Four Six Eight (2 Replies)
Discussion started by: castrojc
2 Replies

9. Shell Programming and Scripting

Compare multiple files, and extract items that are common to ALL files only

I have this code awk 'NR==FNR{a=$1;next} a' file1 file2 which does what I need it to do, but for only two files. I want to make it so that I can have multiple files (for example 30) and the code will return only the items that are in every single one of those files and ignore the ones... (7 Replies)
Discussion started by: castrojc
7 Replies

10. Shell Programming and Scripting

Compare files and share output from both files

hi all, Thanks to all for your great help... I have a scenario that I have two files (file1 & file2). I need to compare two files entire row by row and share the output if any discrepancies within two files. File1: DB1|TB1|C1,C3 DB2|TB2|C1,C2 DB3|TB3|C1,C2,C3,C4 File2: ... (2 Replies)
Discussion started by: Selva_2507
2 Replies
USERS(5)						FreeRADIUS user authorization file						  USERS(5)

NAME
users - user authorization file for the FreeRADIUS server DESCRIPTION
The users files reside in the files module configuration directory, by default /etc/raddb/mods-config/files/. It contains a series of con- figuration directives which are used by the files module to decide how to authorize and authenticate each user request. Every line starting with a hash sign ('#') is treated as comment and ignored. Each entry of the file begins with a username, followed by a (possibly empty) list of check items, all on one line. The next line begins with a tab, and a (possibly empty) list of reply items. Each item in the check or reply item list is an attribute of the form name = value. Multiple items may be placed on one line, in which case they must be seperated by commas. The reply items may be specified over multiple lines, in which case each line must end with a comma, and the last line of the reply items must not end with a comma. The check items are a list of attributes used to match the incoming request. If the username matches, AND all of the check items match the incoming request, then the reply items are added to the list of attributes which will be used in the reply to that request. This process is repeated for all of the entries in the users file. If the incoming request matches NO entry, then the request is rejected. CAVEATS
The special username DEFAULT matches any usernames. The entries are processed in order, from the top of the users file, on down. If an entry contains the special item Fall-Through = No as a reply attribute, then the processing of the file stops, and no more entries are matched. Any reply item list without any Fall-Through attribute is treated as though it included a Fall-Through = No attribute. If an entry contains the special item Fall-Through = Yes as a reply attribute, then the processing proceeds to the next entry in order. Care should be taken when using Fall-Through. The server should be tested in debugging mode with a number of test requests, in order to verify that the configured entries behave as expected. The special attribute Auth-Type is used to identify the authentication type to be used for that user. See the dictionary file for a list of permitted values for the Auth-Type attribute. Once the users file has been processed, the request is authenticated, using the method given by Auth-Type. OPERATORS
Additional operators other than = may be used for the attributes in either the check item, or reply item list. The following is a list of operators, and their meaning. Attribute = Value Not allowed as a check item for RADIUS protocol attributes. It is allowed for server configuration attributes (Auth-Type, etc), and sets the value of on attribute, only if there is no other item of the same attribute. As a reply item, it means "add the item to the reply list, but only if there is no other item of the same attribute." Attribute := Value Always matches as a check item, and replaces in the configuration items any attribute of the same name. If no attribute of that name appears in the request, then this attribute is added. As a reply item, it has an identical meaning, but for the reply items, instead of the request items. Attribute == Value As a check item, it matches if the named attribute is present in the request, AND has the given value. Not allowed as a reply item. Attribute += Value Always matches as a check item, and adds the current attribute with value to the list of configuration items. As a reply item, it has an identical meaning, but the attribute is added to the reply items. Attribute != Value As a check item, matches if the given attribute is in the request, AND does not have the given value. Not allowed as a reply item. Attribute > Value As a check item, it matches if the request contains an attribute with a value greater than the one given. Not allowed as a reply item. Attribute >= Value As a check item, it matches if the request contains an attribute with a value greater than, or equal to the one given. Not allowed as a reply item. Attribute < Value As a check item, it matches if the request contains an attribute with a value less than the one given. Not allowed as a reply item. Attribute <= Value As a check item, it matches if the request contains an attribute with a value less than, or equal to the one given. Not allowed as a reply item. Attribute =~ Expression As a check item, it matches if the request contains an attribute which matches the given regular expression. This operator may only be applied to string attributes. Not allowed as a reply item. Attribute !~ Expression As a check item, it matches if the request contains an attribute which does not match the given regular expression. This operator may only be applied to string attributes. Not allowed as a reply item. Attribute =* Value As a check item, it matches if the request contains the named attribute, no matter what the value is. Not allowed as a reply item. Attribute !* Value As a check item, it matches if the request does not contain the named attribute, no matter what the value is. Not allowed as a reply item. EXAMPLES
bob Cleartext-Password := "hello" Requests containing the User-Name attribute, with value "bob", will be authenticated using the "known good" password "hello". There are no reply items, so the reply will be empty. DEFAULT Auth-Type = System Fall-Through = Yes For all users reaching this entry, perform authentication against the system, unless Auth-Type has already been set. Also, process any following entries which may match. DEFAULT Service-Type == Framed-User, Framed-Protocol == PPP Service-Type = Framed-User, Framed-Protocol = PPP, Fall-Through = Yes If the request packet contains the attributes Service-Type and Framed-Protocol, with the given values, then include those attributes in the reply. That is, give the user what they ask for. This entry also shows how to specify multiple reply items. See the users file supplied with the server for more examples and comments. HINTS
Run the server in debugging mode (-X), and use the radclient program to send it test packets which you think will match specific entries. The server will print out which entries were matched for that request, so you can verify your expectations. This should be the FIRST thing you do if you suspect problems with the file. Care should be taken when writing entries for the users file. It is easy to misconfigure the server so that requests are accepted when you wish to reject them. The entries should be ordered, and the Fall-Through item should be used ONLY where it is required. Entries rejecting certain requests should go at the top of the file, and should not have a Fall-Through item in their reply items. Entries for specific users, who do not have a Fall-Through item, should come next. Any DEFAULT entries should usually come last, except as fall- through entries that set reply attributes. FILES
/etc/raddb/mods-config/files/ SEE ALSO
radclient(1), radiusd(8), dictionary(5), naslist(5) AUTHOR
The FreeRADIUS team. 04 Jan 2004 USERS(5)
All times are GMT -4. The time now is 05:08 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy