[英]merge 2 files in unix using awk based on a part of column
我有2個文件,其數據格式為:
File1 Format : Customer_Key | Customer_DOB
File2 Format : Customer_ID | Customer_Key | Customer_DOB
我的目標是比較字段Customer_DOB,該日期是時間戳格式為YYYYMMDDHH24MISS的日期。 但是我面臨的問題是我必須只比較DOB字段的日期部分,而不考慮時間部分。
也就是說,如果File1.Customer_DOB為19900101000000,而File1.Customer_DOB為19900101122543,則這兩者將被視為相同。
我需要生成一個輸出文件,其中包含日期不匹配的列。 輸出文件將采用以下格式:
Customer_ID | Customer_Key | File1.Customer_DOB | File2.Customer_DOB
File1的樣本日期
900899036|899036|19630110000000
900899039|899039|19810701000000
900899044|899044|19900223000000
File2的樣本日期
899036|1963011122515
2699053|20000101132410
899039|19880501230110
2699052|19890224121014
899044|19900223011214
輸出文件
900899039|899039|**19810701000000**|**19880501230110**
我必須生成一個日期不匹配的報告
我有很多示例可以基於通用列合並文件,但是我一直陷於困境。
感謝您的建議。
如此固定,但:
awk 'NR==FNR{a[$1]=$2;next}{if ($3!=a[$2]){$3="**"$3"|**"a[$2]"**"};print}' OFS='|' FS='|' f2 f1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.