我有一些日志文件。在日志文件中有一些带有双 IP 地址的行。 示例:
127.0.0.1 - - [02/Feb/2021:10:26:41 +0100] "GET /file"
127.0.0.1 - - [02/Feb/2021:10:26:44 +0100] "GET /file"
127.0.0.1 - - [02/Feb/2021:10:26:47 +0100] "GET /file"
我知道时间戳不同,但这并不重要。现在我想删除除一个条目之外的所有条目。注意:我不知道日志中的 IP 地址,因此工具/过滤器应自动查找重复项。
谢谢!
答案 0 :(得分:1)
使用awk
awk '{ map[$1]=$0 } END { for ( i in map ) { print map[i] } }' *.log
在我们处理文件的每一行时,使用字段空间分隔的字段作为索引和行作为值创建一个数组映射。在文件处理结束时,循环打印值/行的数组。