簡體   English   中英

根據列的一部分使用awk在unix中合並2個文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM