请解释一下这个 awk 语句

请解释一下这个 awk 语句

昨天我在谷歌上搜索如何合并两个文件并发现了一个awk片段。

我需要一个简单的合并,所以sort -u这不是可行的方法,但下面的代码可以工作。

有人可以解释一下这段awk代码的作用吗?

awk '!a[$0]++' file_1 file_2

答案1

!a[$0]++      Remove duplicate, nonconsecutive line

这是 awk 的单行代码。它注册关联数组“a”中看到的行(数组在 Awk 中始终是关联的),同时测试它之前是否见过该行。如果它之前见过该行,则 a[line] > 0 且 !a[line] == 0。

任何计算结果为 false 的表达式都是无操作,任何计算结果为 true 的表达式都等于“{ print }”。空语句“a[$0]”在数组中创建一个元素。

有关 awk 检查的更多信息

相关内容