我知道一点bash,但是我面临的问题要过滤文件。我将以一个例子解释:
给定一个文本文件如下(file1):
10.10.12 bib24 Avenger goodone
10.10.12 bib21 The_Dark_Knight_Rises betterone
10.10.12 bib53 Avenger goodone
10.10.12 bib35 Ice_Age wow
11.10.12 bib53 TheAmazingSpiderMan nice
11.10.12 bib54 TheAmazingSpiderMan nice
11.10.12 bib01 Avenger goodone
12.10.12 bib29 Avenger goodone
12.10.12 bib11 TheAmazingSpiderMan nice
12.10.12 bib03 Ice_Age wow
12.10.12 bib98 Ice_Age wow
14.10.12 bib12 Ice_Age wow
这是我想要的结果(file2):
10.10.12 bib24 Avenger goodone
10.10.12 bib21 The_Dark_Knight_Rises betterone
10.10.12 bib35 Ice_Age wow
11.10.12 bib53 TheAmazingSpiderMan nice
所以我的问题是:我使用哪个命令来获得此结果(File2)?(即电影的第一个入门,而不是考虑列/字段1、2和4)。
我希望它足够清楚。
这是使用awk
:
awk '!a[$3]++' file.txt
结果:
10.10.12 bib24 Avenger goodone
10.10.12 bib21 The_Dark_Knight_Rises betterone
10.10.12 bib35 Ice_Age wow
11.10.12 bib53 TheAmazingSpiderMan nice
尝试做是:
sort -u -k3 file.txt
输出:
10.10.12 bib24 Avenger goodone
10.10.12 bib35 Ice_Age wow
11.10.12 bib53 TheAmazingSpiderMan nice
10.10.12 bib21 The_Dark_Knight_Rises betterone
用于生锈的CSH用户:
使用此:
awk '{c[$3]++} {if (c[$3] == 1) print $0}' file.txt
因为有了原始答案,它将出错"找不到事件"(也可以使"也可以使"!