我最近遇到了 awk看到的选项。我可以看到它正在删除文件中的重复项。但不确定它是如何工作的尝试谷歌但没有找到任何结果,需要帮助澄清相同的问题。
cat tes
1
2
3
1
1
1
3
4
Run Code Online (Sandbox Code Playgroud)
awk 看到输出
cat tes | awk '!seen[$0]++'
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
seen
是关联数组的任意名称。这不是任何类型的选择。您可以在其位置使用a
或b
或大多数其他名称。
代码!seen[$0]++
由一个测试和一个增量组成。
如果seen[$0]
,即与$0
当前输入行key 关联的数组元素的值为零(或空),则测试为真。
与键对应的数组中的值$0
然后递增,这意味着在找到相同值的所有其他时间,测试将为假$0
。
结果是第一次在输入中看到特定行时测试为真,其他时间为假。
每当没有关联操作的测试为true 时,就会触发默认操作。默认操作相当于{ print }
or { print $0 }
,它打印当前记录,对于本示例中的所有帐户和目的,它是当前未修改的输入行。
归档时间: |
|
查看次数: |
790 次 |
最近记录: |