how to read the contents of two files line by line and compare the line by line?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how to read the contents of two files line by line and compare the line by line?
# 1  
Old 04-08-2012
how to read the contents of two files line by line and compare the line by line?

Hi All,

I'm trying to figure out which are the trusted-ips and which are not using a script file.. I have a file named 'ip-list.txt' which contains some ip addresses and another file named 'trusted-ip-list.txt' which also contains some ip addresses. I want to read a line from 'trusted-ip-list.txt' file and check whether the read value exists in 'ip-list.txt' file and write some log info to some other file named 'checked-trust.log' file.

Here is the code i'm trying.. But I'm not able to do so Smilie Smilie..

Code:
trust_file=trusted-ip-list.txt
ip_file=ip-list.txt

while ip= read -r line
do
       test=`grep -w "$line" $ip_file`
       echo " "
       if [ "$ip" -e "$test" ] ; then
           echo "Trusted access at `date` by $line" > checked-trust.log
       else
           echo "Untrusted access at `date` by $line" > check-trust.log
       fi
done < "$trust_file"

Please help me in solving this.. Waiting for a helping hand..

Last edited by Scrutinizer; 04-08-2012 at 03:52 PM.. Reason: code tags
# 2  
Old 04-08-2012
You are not setting the variable $ip .

It seems to me you are confusing
Code:
while ip= read -r line

Code:
while IFS= read -r line

no?

although I suspect you may want to leave that out, since you are doing a word match with it and like this it will contain any spaces in the input file..

I don't know what the
Code:
echo " "

is for.. (it's not written to the log)

$ip_file could use a pair of double quotes although with the filename contained therein, this is not strictly necessary..

If you still can't get it to work, please post sample input files...

Last edited by Scrutinizer; 04-08-2012 at 04:33 PM..
This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 04-08-2012
I've done a small change in the code. Please find it:

Code:
trust_file=trusted-ip-list.txt
ip_file=ip-list.txt

while read ip
do
       test=`grep -w "$ip" $ip_file`
       echo "The value of test is : $test"
       if [ "$ip" = "$test" ] ; then
           echo "Trusted access at `date` by $line" > checked-trust.log
       else
           echo "Untrusted access at `date` by $line" > check-trust.log
       fi
done < $trust_file

Even though it is not working.. When I run the script, I'm getting the following output:
Quote:
The value of test is:

The value of test is:

The value of test is:

The value of test is:

The value of test is:

The value of test is:

The value of test is:

The value of test is:
I'm not able to grep the $ip value from ip-list.txt file and set to "test" variable..
# 4  
Old 04-08-2012
This time the variable $line does not get set.
# 5  
Old 04-09-2012
Code:
#!/bin/bash

ip_file=ip-list.txt
trust_file=trusted-${ip_file}

while read ip; do
       if grep -w "${ip}" ${ip_file}; then
            value=Trusted
       else
            value=Untrusted
       fi
       echo "${value} access at $(date) by ${ip}" >> checked-trust.log
done < ${trust_file}

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Get an output of lines in pattern 1st line then 10th line then 11th line then 20th line and so on.

Input file: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 (6 Replies)
Discussion started by: Sagar Singh
6 Replies

2. Shell Programming and Scripting

How to read file line by line and compare subset of 1st line with 2nd?

Hi all, I have a log file say Test.log that gets updated continuously and it has data in pipe separated format. A sample log file would look like: <date1>|<data1>|<url1>|<result1> <date2>|<data2>|<url2>|<result2> <date3>|<data3>|<url3>|<result3> <date4>|<data4>|<url4>|<result4> What I... (3 Replies)
Discussion started by: pat_pramod
3 Replies

3. Shell Programming and Scripting

Need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line...

Hello, I need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line... An example of entries in the file would be: SRVXPAPI001 ERRO JUN24 07:28:34 1775 REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F ... (8 Replies)
Discussion started by: Ferocci
8 Replies

4. Shell Programming and Scripting

How to read a two files, line by line in UNIX script and how to assign shell variable to awk ..?

Input are file and file1 file contains store.bal product.bal category.bal admin.bal file1 contains flip.store.bal ::FFFF:BADC:CD28,::FFFF:558E:11C5,6,8,2,1,::FFFF:81C8:CA8B,::FFFF:BADC:CD28,1,0,0,0,::FFFF:81C8:11C5,2,1,0,0,::FFFF:81DC:3111,1,0,1,0 store.bal.... (2 Replies)
Discussion started by: veeruasu
2 Replies

5. Shell Programming and Scripting

Compare fields in two files line by line

I am new to awk scripting. I want to do a field by word (field) comparison of two files File1.txt and File2.txt. The files contain a list of | (pipe) separated field. **File 1: ------------------- aaa|bbb|ccc|eee|fff lll|mmm|nnn|ooo|ppp rrr|sss|ttt|uuu|vvv** File 2: ... (7 Replies)
Discussion started by: dhruvmohan
7 Replies

6. Shell Programming and Scripting

Perl how to compare two pdf files line by line

Hi Experts, Would really appreciate if anyone can guide me how to compare two pdf files line by line and report the difference to another file. (3 Replies)
Discussion started by: prasanth_babu
3 Replies

7. Shell Programming and Scripting

Read each line and saving the line in separate files

Hi Experts, I am having a requirement like this; Input file EIM_ACCT.ifb|1001|1005 EIM_ADDR.ifb|1002|1004 EIM_ABD.ifb|1009|1007 I want to read each line of this file and pass each line,one at a time,as an argument to another script. eg; 1.read first line->store it to a file->call... (2 Replies)
Discussion started by: ashishpanchal85
2 Replies

8. UNIX for Dummies Questions & Answers

How to read contents of a file from a given line number upto line number again specified by user

Hello Everyone. I am trying to display contains of a file from a specific line to a specific line(let say, from line number 3 to line number 5). For this I got the shell script as shown below: if ; then if ; then tail +$1 $3 | head -n $2 else ... (5 Replies)
Discussion started by: grc
5 Replies

9. Shell Programming and Scripting

bash: read file line by line (lines have '\0') - not full line has read???

I am using the while-loop to read a file. The file has lines with null-terminated strings (words, actually.) What I have by that reading - just a first word up to '\0'! I need to have whole string up to 'new line' - (LF, 10#10, 16#A) What I am doing wrong? #make file 'grb' with... (6 Replies)
Discussion started by: alex_5161
6 Replies

10. Shell Programming and Scripting

Compare two text files line by line

Hi all I need help on comparing two texts files line by line and print the total number of lines matched. Any help is appreciated. Thanks in advance. (4 Replies)
Discussion started by: my_Perl
4 Replies
Login or Register to Ask a Question