aaaaa Asked: 2021-12-09 02:23:08 +0800 CST2021-12-09 02:23:08 +0800 CST 2021-12-09 02:23:08 +0800 CST 只保留文件中出现 n 次的行 772 我有一个test.txt文件,每行包含一个字符串,如下所示: AA BNT AA KIO LO LO POY LO II LO AA AA II AA BNT POY YTR BNT LL BNT 如何使用 linux 浏览文件并仅返回出现 4 次的行? 期望的输出: AA BNT LO 谢谢 linux bash 2 个回答 Voted Best Answer Stephen Kitt 2021-12-09T02:32:06+08:002021-12-09T02:32:06+08:00 使用 AWK: awk '{ seen[$0]++ } seen[$0] == 4' test.txt 这会计算每行被看到的次数,并在计数正好为四时输出一行(因此看到四次或更多次的行输出一次)。 如果您只想查看恰好出现四次的行,请改用: awk '{ seen[$0]++ } END { for (line in seen) if (seen[line] == 4) print line }' test.txt FelixJN 2021-12-09T03:26:53+08:002021-12-09T03:26:53+08:00 sort test.txt | uniq -c | awk '$1==4 {print $2}' withsort和uniq用于计数出现次数,whileawk找到 4 个出现次数时选择。 对于 4 次及以上的出现,只需更改$1==4为$1>=4. 请注意,这仅适用于单字符串行,并且输出按字典顺序排序。
使用 AWK:
这会计算每行被看到的次数,并在计数正好为四时输出一行(因此看到四次或更多次的行输出一次)。
如果您只想查看恰好出现四次的行,请改用:
with
sort
和uniq
用于计数出现次数,whileawk
找到 4 个出现次数时选择。对于 4 次及以上的出现,只需更改
$1==4
为$1>=4
.请注意,这仅适用于单字符串行,并且输出按字典顺序排序。