[英]Comparing values of two lines based on the Key in a file using awk
我如何比较 output 的“id”和“name”,其开始日期和结束日期重叠并且属于同一日期范围。
在下面的示例中,第 2 行日期范围与第 1 行重叠,类似的第 3 行日期范围与第 4 行重叠。
例如:
row id name start end
1 AA123 temp1 2020-01-10 2020-04-10
2 AA123 temp1 2020-02-20 2020-03-20
3 AA700 temp4 2019-01-01 2019-02-28
4 AA700 temp4 2018-12-01 2019-04-20
5 BB120 temp5 2021-01-10 2021-02-01
预期 Output:
id name
AA123 temp1
AA700 temp4
感谢你的帮助。
$ awk -v OFS='\t' 'NR==1 || (k=$2) in s && !(e[k]<$4 || $5<s[k]) {print k,$3}
{s[k]=$4; e[k]=$5}' file
id name
AA123 temp1
AA700 temp4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.