File comparision line by line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting File comparision line by line
# 22  
Old 07-04-2013
few more Q.. Which would be your file 1 and file2 in this case? also do you have GNU date (Linux)?
# 23  
Old 07-04-2013
Code:
Aggr_New_06_19_2013_1944.txt
Aggr_New_06_20_2013_1956.txt

In above files, file1 is Aggr_New_06_19_2013_1944.txt and file2 is Aggr_New_06_20_2013_1956.txt, previous file should compare with current file(newfile) and difference or new records in file2 should get output to file3.

GNU: Yes, Date command will work in our linux server, but this comparison will do whenever we require like monthly 15 or 20days will run, not daily, requirement is always previous file should compare with new file and get difference output to file3.
# 24  
Old 07-04-2013
in your script define 2 variables (you can directly feed also to awk)
Code:
 
file1=Aggr_New_`date --date='yesterday' +"%m_%d_%Y"`_*.txt
file2=Aggr_New_`date +"%m_%d_%Y"`_*.txt
awk -F"|" 'FNR==NR{a[$2$3]++;next}!a[$2$3]' file1.txt file2.txt > file3.txt

This User Gave Thanks to vidyadhar85 For This Post:
# 25  
Old 07-04-2013
Thanks for your reply Vidyadhar..!!
Its working if we have y'day and today files, the files executes in windows only some times, like continuous 10days then after that again 20th day...so in this case, 10th day file wil be like...

Code:
Aggr_New_06_10_2013_1944.txt
Aggr_New_06_20_2013_1956.txt

In above case, previous file is 10th day file, new file is 20th date file, script is not working in this case...hope you can understand the requirement.
# 26  
Old 07-04-2013
who and what will decide when to run this? If you are the one to decide then use
date --date='10 days ago' +"%m_%d_%y" something like this
# 27  
Old 07-04-2013
its depends on requirement when we get files, we can't hardcode any particular date, again it will be like manual as example below...

Code:
Day1

Aggr_New_06_10_2013_1944.txt
Aggr_New_06_20_2013_1956.txt

Day2

Aggr_New_06_20_2013_1944.txt
Aggr_New_06_21_2013_1956.txt

next run

Aggr_New_06_21_2013_1944.txt
Aggr_New_06_25_2013_1956.txt

It may occur like this...
# 28  
Old 07-04-2013
Quote:
Originally Posted by rkrish123
its depends on requirement when we get files, we can't hardcode any particular date, again it will be like manual as example below...

Code:
Day1

Aggr_New_06_10_2013_1944.txt
Aggr_New_06_20_2013_1956.txt

Day2

Aggr_New_06_20_2013_1944.txt
Aggr_New_06_21_2013_1956.txt

next run

Aggr_New_06_21_2013_1944.txt
Aggr_New_06_25_2013_1956.txt

It may occur like this...
If your input file names are as described above and you want them sorted by year, month, day, and time; one of the following should work for you.

When there are just two files in the current directory and both files are from the same year, a simple:
Code:
echo *

will give you the two filenames to be processed in the correct order. If the files may be from different years, try:
Code:
ls -f | sort -t_ -k 5,5 -k 3,4 -k6,6

If your output file is also in the same directory (and has a name that doesn't start with Aggr, you can use:
Code:
ls -f Aggr* | sort -t_ -k 5,5 -k 3,4 -k6,6

If there are a bunch of these files in the directory and you just want the last two, you can use:
Code:
ls -f Aggr* | sort -t_ -k5,5 -k3,4 -k6,6 | tail -n2

If you have other files with names starting with Aggr (such as your output files), but they have a slightly different name format, you can use:
Code:
ls -f Aggr_New_[0-9][0-9]_[0-9][0-9]_[0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9].txt |
        sort -t_ -k5,5 -k3,4 -k6,6 | tail -n2

If you keep just giving us bits and pieces we continue to waste time trying to figure out what you're trying to do.

PLEASE, give a complete specification of your input and output requirements!
Login or Register to Ask a Question

Previous Thread | Next Thread

9 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

perl: comparision of field line by line in two files

Hi everybody, First I apologize if my question seems demasiad you silly, but it really took 4 days struggling with this, I looked at books, forums ... And Also ask help to a friend that is software developer and he told me that it is a bad idea do it by perl... but this is my problem. I moved to... (8 Replies)
Discussion started by: Thelost
8 Replies

5. Shell Programming and Scripting

Read file line by line and process the line to generate another file

Hi, i have file which contains data as below(Only sample shown, it may contain more data similar to the one shown here) i need to read this file line by line and generate an output file like the one below i.e based on N value the number of MSISDNs will vary, if N=1 then the following... (14 Replies)
Discussion started by: aemunathan
14 Replies

6. Shell Programming and Scripting

[Solved] Problem in reading a file line by line till it reaches a white line

So, I want to read line-by-line a text file with unknown number of files.... So: a=1 b=1 while ; do b=`sed -n '$ap' test` a=`expr $a + 1` $here do something with b etc done the problem is that sed does not seem to recognise the $a, even when trying sed -n ' $a p' So, I cannot read... (3 Replies)
Discussion started by: hakermania
3 Replies

7. Shell Programming and Scripting

Line by Line Comparision of 2 files and print only the difference

Hi, I am trying to find an alternative way to do tkdiff. In tkdiff the gui compares each line and highlights only the differences. for eg: John works at McDonalds s(test) He was playing guitar tywejk John works in McDonalds 9908 He was playing guitar I am... (1 Reply)
Discussion started by: naveen@
1 Replies

8. UNIX for Advanced & Expert Users

how do you parse 1 line at a time of file1 ie. line(n) each line into new file

File 1 <html>ta da....unique file name I want to give file=>343...</html> <html>da ta 234 </html> <html>pa da 542 </html> and so on... File 2 343 234 542 and so on, each line in File 1 one also corresponds with each line in File 2 I have tried several grep, sed, while .. read, do,... (4 Replies)
Discussion started by: web_developer
4 Replies

9. Shell Programming and Scripting

file comparision by line

i have two files and i want to compare these two it shoud print those lines which are not in 2nd file a.txt 1236,AB,0 2345,CD,1 5679,EF,1 9123,AA,1 9223,AA,0 b.txt 1234,AB,0 2345,CD,1 5678,EF,1 9123,AA,0 o/p 1236,AB,0 5679,EF,1 9123,AA,1 9223,AA,0 (6 Replies)
Discussion started by: aaysa123
6 Replies
Login or Register to Ask a Question