【发布时间】:2017-12-01 01:00:18
【问题描述】:
我是一个脚本新手,我正在寻求帮助来构建一个 BASH 脚本来比较不同 CSV 文档中的不同列,然后打印不匹配的内容。我在下面提供了一个示例。
文件 1 员工 ID 号、姓氏、名字、首选名称、电子邮件地址
文件 2 员工姓名、电子邮件地址
我想比较两个文件中的电子邮件地址列。如果文件 1 不包含在文件 2 中找到的电子邮件地址,我想输出到一个新文件。
提前致谢!
【问题讨论】:
-
谢谢 我想知道你在做什么。不认真,SO 不是代码编写服务,您尝试过什么吗?就像 file1 中的行循环(研究 while),提取电子邮件(研究剪切),grep 文件 2 中的电子邮件(好 grep!),如果它不存在输出到输出文件(回显行 >>newfile)。祝你好运,如果您遇到困难,请发布您的代码以便我们提供帮助。
-
您好 Nic3500 - 感谢您如此迅速地回复。我尝试的第一件事是awk。我在 SO 上找到了一个类似的示例,我以我的结构为基础,但是在意外标记附近遇到语法错误 '(':
awk -f FNR == NR { mem[ $1 $2 $3 $4 $5 ] = 1; print next} { key = $1 $2 $3 $4 $5 if( ! ( key in mem) ) print}我还尝试了以下 grep:grep -vFxf file2.csv file1.csv > new.csvGrep 在某种意义上工作删除了一些条目,但不是全部。
标签: bash csv command-line-interface