gpt4 book ai didi

linux - 我需要将文件中指定的模式列表与另一个文件进行比较,并仅报告包含模式的列的匹配部分

转载 作者:太空宇宙 更新时间:2023-11-04 12:51:34 26 4
gpt4 key购买 nike

我需要将文件 (file1) 中指定的字符串列表与另一个文件 (file2) 进行比较,并使用 linux 仅报告包含字符串的列和其他列的匹配部分

下面是一个例子:

包含要搜索的字符串的文件-文件1如下

Name

Laura

Caroline

Chan

Carol

要搜索的文件 - file2:

Name                        Title             Salary 

George Research fellow 48000

Vanesse, Laura , Robert Graduate student 20000

Patrick, Simon Data Analyst 58000

Caroline Administrative assistant 52000

Allison, Treacey, Chan Research Technician 60000

Carol, John Lab Managers 70000

下面是所需的输出(仅包含匹配条目的名称列(请注意此列在某些行中有逗号分隔值,但我只需要输出中名称列的匹配条目)和单独的薪水列):

Name        Salary

Laura 20000

Caroline 52000

Chan 60000

我想使用 linux 命令执行此任务。这可以使用 linux grep/awk 命令来完成吗?

关于要求的附加说明:

部分匹配:不行我的列之间的空格:制表符

谢谢!

最佳答案

在你的名字文件上修改类型之后

$ awk 'NR==FNR{a[$1];next} 
{n=gsub(/,/,",");
for(i=1;i<=n+1;i++) if($i in a) print $i,$NF }' file1 file2

Laura 20000
Caroline 52000
Chan 60000

仅检查每条记录中的姓名,而不检查标题。

关于linux - 我需要将文件中指定的模式列表与另一个文件进行比较,并仅报告包含模式的列的匹配部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37014217/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com