2014-04-03 77 views
0

我有兩個文本文件A.txt & AA.txt,都具有相同的頭文件 我需要通過合併這兩個文件創建一個文件C.如果文件包含相同的記錄,並且更新日期或創建日期有所更改,那麼它應該只記錄最近更新的記錄。合併兩個文件與最新的更新記錄

我用

awk -F"|" '!a[$1]++' /export/home/Vip/A* > C.txt 

合併文件開始A. 我怎樣才能得到最新的更新的記錄。

如果第五列是update_date。我應該怎麼做才能在最近更新的記錄

+2

兩個文件和所需輸出一些樣本輸入數據將越來越清晰,工作的答案可以幫助。 –

回答

1

下合併一組文件,這樣如果$1值是一些或所有的文件一樣,它會選擇與$5最大值的記錄:

awk -f a.awk firstRun=1 file1 file2 firstRun=0 file1 file2 

其中a.awk是:

BEGIN {FS="|"} 
firstRun { 
    a[$1]++ 
    if (a[$1]==1) { 
     c[$1]=$5; b[$1]=FILENAME 
    } 
    else { 
     if ($5> c[$1]) 
      b[$1]=FILENAME 
    } 
    next 
} 
b[$1]==FILENAME 

對於樣品文件:

$ cat file1 
1|2|3|4|5 
6|7|8|9|10 
11|12|13|14|15 

$ cat file2 
1|2|3|4|6 
21|22|23|24|25 
11|12|13|14|9 

它給輸出:

6|7|8|9|10 
11|12|13|14|15 
1|2|3|4|6 
21|22|23|24|25