我有两个文本文件A.txt& AA.txt,两者都有相同的标题 我需要通过合并这两个来创建文件C.如果文件包含相同的记录,并且更新日期或创建日期有一些更改,那么它应该只采用最近更新的记录。
我用过
awk -F"|" '!a[$1]++' /export/home/Vip/A* > C.txt
合并以A开头的文件 我怎样才能获得最新的更新记录。
如果第5列是update_date。我该怎么做才能获得最近更新的记录
答案 0 :(得分: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