awk see 选项如何工作

awk see 选项如何工作

我最近遇到了一个awk见过选项。我可以看到它正在删除文件中的重复项。我可以对其工作原理进行一些澄清。

cat tes
1
2
3
1
1
1
3
4

使用 awk 看到输出

cat tes | awk '!seen[$0]++'

1
2
3
4

答案1

seen是关联数组的任意名称。这不是任何一种选择。您可以使用ab或大多数其他名称来代替它。

该代码!seen[$0]++由测试和增量组成。

如果seen[$0],即与当前输入行 key 关联的数组元素的值$0为零(或空),则 的布尔!seen[$0]值为真的

然后数组中与该键对应的值$0递增,这意味着测试将是错误的$0找到相同值的所有其他时间。

测试的效果是真的第一次在输入中看到特定行,并且错误的所有其他时间。

每当没有关联操作的测试真的, 这默认动作被触发。默认操作相当于{ print }or { print $0 },它打印当前记录,对于本示例中的所有帐户和目的来说,该记录是当前未修改的输入行。

相关内容