比較2個(gè)CSV文件并輸出一個(gè)匹配文件,一個(gè)non-matches文件

我有兩個(gè)CSV文件(以|分隔),我正試圖在bash腳本中進(jìn)行比較。文件A有5列;文件B有1列。我目前沒(méi)有任何標(biāo)題,我打算稍后添加。文件1中的第5列包含一些與文件2中的第1列匹配的條目。我想最終得到兩個(gè)新文件:文件C,它有來(lái)自文件A的第1-5列,其中文件A第1列和文件B第1列匹配;具有文件A中第1-5列的文件D,其中文件A第1列和文件B第1列不匹配。

文件A中的示例文本:

 CT240021313|2024-02-04 00:00:02|CT|1.2.345.6
 AB123|2024-02-01 11:22:33|MR|7.8.98.102
 PDQ987|2024-02-04 8:50:11|XR|1.23.45.6
 PA7531|2024-02-03 9:34:52|CT|6.3.489

文件B中的示例文本:

1.2.345.6
6.3.489

預(yù)期輸出文件C:

CT240021313|2024-02-04 00:00:02|CT|1.2.345.6
PA7531|2024-02-03 9:34:52|CT|6.3.489

預(yù)期輸出文件D:

 AB123|2024-02-01 11:22:33|MR|7.8.98.102
 PDQ987|2024-02-04 8:50:11|XR|1.23.45.6

我在awk上嘗試了幾種變體,但幾乎沒(méi)有成功,甚至找不到匹配的。然而,我可以導(dǎo)出文件并導(dǎo)入到Excel中,并突出顯示文件A第5列和文件B第1列中的匹配值,它會(huì)找到許多匹配項(xiàng)。我目前擁有的,基本上返回文件A中的每一行:

awk 'NR==FNR{a[$0];next !($0 in a)' file_a.csv file_b.csv  > file_c.csv
? 最佳回答:

Try

awk -F '|' 'NR==FNR{b[$0];next} ($4 in b){print>"C";next} {print>"D"}' B A

你已經(jīng)走上了正軌,但訂單混亂了。在這里,我們以另一種方式指定輸入文件。首先,我們將B讀取到內(nèi)存中,然后根據(jù)之前在B中看到的值對(duì)A進(jìn)行分區(qū)。

主站蜘蛛池模板: 熟女性饥渴一区二区三区| 中文字幕日韩一区二区不卡| 亚洲色偷精品一区二区三区| 综合一区自拍亚洲综合图区| 一区二区三区亚洲| 亚洲欧美国产国产综合一区| 国产伦精品一区二区三区视频猫咪 | 日本一区二区不卡视频| 国产日韩精品一区二区在线观看播放 | 久久一区不卡中文字幕| 中文字幕一区二区三区永久| 国产高清一区二区三区四区| 日本一区二区三区精品国产| 色欲AV蜜桃一区二区三| 无码人妻精品一区二区三区蜜桃| 亚洲AV日韩AV天堂一区二区三区| 国产亚洲一区二区手机在线观看| 精品乱子伦一区二区三区| 波多野结衣一区二区三区88| 日本人的色道www免费一区| 无码夜色一区二区三区| 97久久精品无码一区二区天美| 无码国产精品一区二区免费式影视| 色妞色视频一区二区三区四区| 日韩精品一区二区三区色欲AV | 日韩A无码AV一区二区三区| 国产免费一区二区三区VR| 精品国产一区在线观看| 国产精品美女一区二区视频| 国偷自产Av一区二区三区吞精| 国产精品 视频一区 二区三区| 一区二区三区免费高清视频| 精品一区二区无码AV| 丰满爆乳一区二区三区| 综合人妻久久一区二区精品| 一区二区三区日韩| 中文字幕日韩一区二区不卡 | 97精品国产福利一区二区三区| 熟女少妇丰满一区二区| 精品国产乱子伦一区二区三区| 成人毛片无码一区二区|