Awk 将两个文件与最新更新的记录合并
我有两个文本文件A.txt和AA.txt,它们都有相同的头 我需要通过合并这两个文件来创建一个文件C。如果文件包含更新日期或创建日期有所更改的同一记录,则应仅采用最近更新的记录 我曾经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
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
来自这两个文件的一些示例输入数据和您想要的输出将有助于获得清晰有效的答案。