date - 在两个文件中使用 awk 将 1 列匹配到另一列,然后对匹配的记录进行日期减法
问题描述
在两个文件中使用awk
匹配 1 列到另一列,然后对匹配的记录进行日期减法(以天为单位)。
假设我有两个文件
文件1:
123,2-jul-2016
124,2-jul-2018
文件2:
123,2-jul-2015
124,2-jul-2017
如果匹配,那么给我输出为
123,366
124,366
谢谢您的帮助
解决方案
请您尝试以下操作。
awk '
BEGIN{
FS=OFS=","
num=split("jan,feb,mar,apr,may,jun,jul,aug,oct,nov,dec",month,",")
for(i=1;i<=num;i++){
daymonth[month[i]]=i}
}
FNR==NR{
a[$1]=$2
next
}
($1 in a){
split($2,array2,"-")
split(a[$1],array1,"-")
print $1,(mktime(sprintf("%d %d %d 0 0 0 0",array2[3],daymonth[array2[2]],array2[1]))-\
mktime(sprintf("%d %d %d 0 0 0 0",array1[3],daymonth[array1[2]],array1[1])))\
/86400
}' Input_file2 Input_file1
推荐阅读
- python - 我无法在 pycharm 社区版中导入 tkinter
- java - 关于责任、对象的生命周期和 DI 依赖关系,工厂、生产者和提供者之间有什么区别?
- leaflet - Leaflet 上带有个性化图标和 html 的个性化标记
- java - eclipse:找不到适合 jdbc 的驱动程序
- scheme - Having trouble converting if into cond
- java - 为什么这个 Java Page Printing 代码如此缓慢,还有其他替代方法吗?
- c# - Index of Array2D out of limit while reading txt File
- python - 如何使 Python CGI 脚本将用户输入捕获为变量
- c# - 使用构造函数获取形式参数错误
- hibernate - JPA+Hiberante how to delete entities on multiple dependencies