2014-05-22 26 views
0

的一部分AWK我有2個文件格式有數據合併在UNIX 2個文件。但是我面臨的問題是我不得不僅僅比較DOB字段的日期部分,而不考慮時間部分。
也就是說,如果File1.Customer_DOB是19900101000000且File1.Customer_DOB是19900101122543,則這兩者都將被視爲相同。使用基於

我需要生成一個輸出文件,其中包含日期不匹配的列。輸出文件將在格式:文件2

的文件1

Customer_ID | Customer_Key | File1.Customer_DOB | File2.Customer_DOB 

樣數據

900899036|899036|19630110000000 
900899039|899039|19810701000000 
900899044|899044|19900223000000 

樣數據

899036|1963011122515 
2699053|20000101132410 
899039|198805
2699052|19890224121014 
899044|19900223011214 

輸出文件

900899039|899039|**19810701000000**|**198805** 

我不得不產生報告日期不匹配的位置

我有這麼多的例子來合併基於公共列的文件,但我在我的情況下得到了stucked。

感謝您的建議。

+0

使用'{}'命令代碼的標籤添加到您的文章,以便它更易讀。您在編輯帖子時可以在工具欄中找到它。標記文本並單擊命令。 – Jotne

+0

基於'awk'的解決方案是不是也可以接受? – Alfe

+0

我可以假設對於File1中的每一行,在File2中只有一行與匹配的Customer_Key? – Alfe

回答

0

所以固定的,但是:

awk 'NR==FNR{a[$1]=$2;next}{if ($3!=a[$2]){$3="**"$3"|**"a[$2]"**"};print}' OFS='|' FS='|' f2 f1