首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >awk来比较两个文件

awk来比较两个文件
EN

Stack Overflow用户
提问于 2014-02-28 16:20:01
回答 4查看 39.6K关注 0票数 5

我试着比较两个文件,并想打印匹配的线条.文件中的行将是唯一的。

File1.txt

代码语言:javascript
运行
复制
GERMANY
FRANCE
UK
POLLAND

File2.txt

代码语言:javascript
运行
复制
POLLAND 
GERMANY

我试着用以下命令

代码语言:javascript
运行
复制
awk 'BEGIN { FS="\n" } ; NR==FNR{A[$1]++;NEXT}A[$1]' File1.txt File2.txt

但是它打印了两次匹配的记录,我想把它们打印一次.

更新

预期产出

代码语言:javascript
运行
复制
POLLAND 
GERMANY

电流输出

代码语言:javascript
运行
复制
POLLAND 
GERMANY
POLLAND 
GERMANY
EN

Stack Overflow用户

发布于 2014-02-28 16:30:26

试试看这个衬里:

代码语言:javascript
运行
复制
awk 'NR==FNR{name[$1]++;next}$1 in name' file1.txt file2.txt
  • 迭代第一个文件NR==FNR,将名称存储在一个名为names的数组中。
  • 您可以使用next来防止第二个操作发生,直到第一个文件完全存储在数组中为止。
  • 第一个文件完成后,可以通过检查下一个文件是否存在于数组中来启动下一个文件。如果它退出,它将打印出名称。
  • FS是字段分隔符。您不需要将其设置为new line。您需要RS,它是Record Separator,才是新的行。但我们在这里不这么做,因为它是默认值。
票数 2
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22100384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档