昨天我在谷歌上搜索如何合并两个文件并发现了一个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 检查的更多信息这。