linux - 比较两个 csv 文件并在单独的 csv 上写入丢失的数据
问题描述
请在 awk 场景中帮助我
我有两个 csv,我需要比较两个 csv 文件,并且必须在单独的 csv 文件中写入缺失的列值以及表名
文件.csv
Table Name Column Name
Class5 Tamil
Class5 English
Class5 Maths
Class5 Physics
Class5 Chemistry
Class6 Tamil
Class6 English
Class6 Maths
Class6 Chemistry
Class7 Tamil
Class7 English
Class7 Maths
Class7 Physics
Class7 Chemistry
File2.csv
Table Name Column Name
Class5 Tamil
Class5 English
Class5 Maths
Class5 Physics
Class5 Chemistry
Class6 Tamil
Class6 English
Class6 Maths
Class6 Physics
Class6 Chemistry
期望输出:
Missing Table(On file1) Missing column(on file1) Missing table(on file2) Missing column(on file2)
-------------------------------------------------------------------------------------------------------------------
class6 Physics
class7 Tamil
class7 English
class7 Maths
class7 Physics
class7 Chemistry
解决方案
您可以使用 Unix通信命令。
在将文件传递给comm命令之前,您需要先对它们进行排序。
要获取 File1.csv 中缺少的行,您必须执行以下操作,
comm -23 <(sort File2.csv | uniq) <(sort File1.csv | uniq)
要获取 File2.csv 中缺少的行,您必须执行以下操作,
comm -23 <(sort File1.csv | uniq) <(sort File2.csv | uniq)
推荐阅读
- freeswitch - CentOS Freeswitch v1.10:全新安装时没有音频
- go - 没有与本地包的查询“最新”匹配的版本
- django - Django - ImportError:无法为 API 设置导入“drf_yasg.generators.OpenAPISchemaGenerator”
- spring-boot - Intellij 中所有新项目的默认环境变量和 VM 选项
- angularjs - 加载了不需要的页面
- mysql - 将新列嵌套到 Select 查询中
- functional-programming - Is there a way to find if a sequence of two chars are found in a list only if they are consecutive?
- react-native - React Native Text Input with Border and always Focused
- r - 基于列值的新类别列
- java - 错误:反向引用类型 (java.util.Set) 与托管类型不兼容