Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Awk 将两个文件与最新更新的记录合并_Awk - Fatal编程技术网

Awk 将两个文件与最新更新的记录合并

Awk 将两个文件与最新更新的记录合并,awk,Awk,我有两个文本文件A.txt和AA.txt,它们都有相同的头 我需要通过合并这两个文件来创建一个文件C。如果文件包含更新日期或创建日期有所更改的同一记录,则应仅采用最近更新的记录 我曾经 awk -F"|" '!a[$1]++' /export/home/Vip/A* > C.txt 合并以A开头的文件。 如何获取最新更新的记录 如果第5列是更新日期。如何获取最近更新的记录?以下合并了一组文件,如果部分或所有文件中$1的值相同,它将选择最大值$5的记录: awk -f a.awk fi

我有两个文本文件A.txt和AA.txt,它们都有相同的头 我需要通过合并这两个文件来创建一个文件C。如果文件包含更新日期或创建日期有所更改的同一记录,则应仅采用最近更新的记录

我曾经

awk -F"|" '!a[$1]++' /export/home/Vip/A* > C.txt 
合并以A开头的文件。 如何获取最新更新的记录


如果第5列是更新日期。如何获取最近更新的记录?以下合并了一组文件,如果部分或所有文件中
$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

来自这两个文件的一些示例输入数据和您想要的输出将有助于获得清晰有效的答案。